排序算法入门
一行代码的自述
这个作者很懒,什么都没留下…
展开
-
排序系列之---冒泡排序
排序系列之---冒泡排序 -。-冒泡排序的基本思想就是把数组中值最大的元素放到数组的右边,一个一个放。比如数组:3,4,2,7,5,1,9,0首先它从该数组中找到值最大的数,然后放到数组的最右边,而值最大的数是怎么找出来的呢?它是通过不断的两两比较得到的。如上面的例子:它的过程如下:3<4,位置不变,然后4跟2比4>2,4和2交换位置,然后4跟7比4<7,位置不变。...原创 2018-04-15 09:39:36 · 119 阅读 · 0 评论 -
排序算法之——选择排序
排序算法之——选择排序 选择排序,工作原理很简单,顾名思义,就是每一次从待排序的数据元素中选出最小的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。选择排序大概过程如下:比如数组:3,4,2,7,5,1,9,0首先先定义一个指针:int minInde...原创 2018-04-15 10:00:19 · 181 阅读 · 0 评论 -
常见排序之——插入排序
常见排序之——插入排序何为插入排序:插入排序就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。简单来说,就是指已经插入数组中的元素都是有序的。举个粟子:一个数组如下所示:3,4,2,7,5,1,9,0当插入3的时候,3保持不变;插入4的时候,4>3,故顺序保存不变;插入2的时候,4>2...原创 2018-04-15 20:32:04 · 279 阅读 · 0 评论 -
排序算法之----快速排序(快速上手快速排序)
排序算法之----快速排序(快速上手快速排序)何为快速排序算法?快速排序的基本思想又是什么?其实很简单:快速排序的基本思想是1、先从数列中取出一个数作为基准数(这里我们的算法里面取数组最右边的元素作为基准数,节省了一个变量 0。0)2、分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边3、再对左右区间重复第二步,直到各区间只有一个数(这里涉及到一个递归的过程)题外话说一句(快...原创 2018-04-15 21:52:50 · 277 阅读 · 2 评论 -
排序算法之--归并排序(好玩的一个算法o。o)快速入门
排序算法之--归并排序(好玩的一个算法o。o)下面是归并操作的基本思路(注意:是归并操作哦,不是归并排序哦)归并操作的工作原理如下:第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列第二步:设定两个指针,最初位置分别为两个已经排序序列的起始位置第三步:比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复步骤3直到某一指针超出序列尾将另一序列剩...原创 2018-04-15 22:22:38 · 184 阅读 · 0 评论 -
排序算法之---堆排序(很重要的一个结构,新手入门必备)
排序算法之---堆排序(很重要的一个结构,新手入门必备)先来简单的介绍一下堆结构:堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它是不稳定排序。首先简单了解下堆结构。 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。如下图:大根堆...原创 2018-04-16 11:21:28 · 335 阅读 · 0 评论 -
排序算法之--桶排序(桶,像桶一样的排序,听起来很有趣哦0。0)
排序算法之--桶排序桶排序的工作的原理是将数组分到有限数量的桶子里,而这个有限数量是指多少个呢?不急,容我细细道来:我们可以先求出这个数组的最大值和最小值,那么桶的数量就是max-min+1咯为了方便我在编程中去max+1(也就是说,我只求出了最大值,没求最小值)然后,我们就把元素的值放在与其值相同序号的桶里面,可以看下图,5就放到5号桶里面。。。那么,所有元素就都能放到各自的桶里面咯,同一个桶里...原创 2018-04-16 11:43:39 · 289 阅读 · 0 评论