
算法排序
坚强的小猪猪
这个作者很懒,什么都没留下…
展开
-
快速排序算法原理和代码实现
它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列首先设置两个变量i,j。分别指向序列的首尾元素。该例子是以第一个元素为基准,从小到大进行排列。让j从后向前进行查询,直到找到第一个小于66的元素。则将最后一个j指向的数23,和...原创 2020-01-08 16:12:05 · 552 阅读 · 0 评论 -
归并排序原理和代码实现
归并操作的工作原理如下:第一步:申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列第二步:设定两个指针,最初位置分别为两个已经排序序列的起始位置第三步:比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置重复步骤3直到某一指针超出序列尾将另一序列剩下的所有元素直接复制到合并序列尾归并操作(merge),也叫归并算法,指的是将两个顺序序列合并成...原创 2020-01-08 11:57:03 · 190 阅读 · 0 评论 -
冒泡排序原理和代码实现
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的3.数。4.针对所有的元素重复以上的步骤,除了最后一个。5.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较动图实现,(来源参考资料)代码实现(java)public static void bubbleSor...原创 2020-01-08 11:10:22 · 204 阅读 · 0 评论 -
直接选择排序基本思想和算法代码实现
直接选择排序(Straight Select Sorting) 也是一种简单的排序方法,它的基本思想是:第一次从R[0]R[n-1]中选取最小值,与R[0]交换,第二次从R[1]R[n-1]中选取最小值,与R[1]交换,…,第i次从R[i-1]R[n-1]中选取最小值,与R[i-1]交换,…,第n-1次从R[n-2]R[n-1]中选取最小值,与R[n-2]交换,总共通过n-1次,得到一个按排序码从...原创 2020-01-07 15:21:40 · 559 阅读 · 0 评论 -
希尔排序基本思想和算法代码
先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量 =1( < …<d2<d1),即所有记录放在同一组中进行直接插入排序为止。该方法实质上是一种分组插入方法比较相隔较远距离(称为增量)的数,使得数移动时能跨过多个元素,则...原创 2020-01-07 14:41:28 · 726 阅读 · 0 评论 -
二分法插入排序原理和算法代码
二分法插入排序,简称二分排序,是在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,如果小,则对前半再进行折半,否则对后半进行折半,直到left<right,然后再把第i个元素前1位与目标位置之间的所有元素后移,再把第i个元素放在目标位置上。代码private static void binarySort() { int [] a={15,27,36,...原创 2020-01-07 12:09:12 · 563 阅读 · 0 评论 -
直接插入排序原理与两种算法实现
插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法...原创 2020-01-07 09:26:43 · 380 阅读 · 1 评论