//插入排序 $arr = [2, 3, 1, 6, 4, 7, 5, 9]; for($i=1;$i<count($arr);$i++){ $key = $arr[$i]; $pos = $i; while($pos > 0 && $arr[$pos-1] > $key){ $arr[$pos]= ...
分类:
编程语言 时间:
2019-12-24 09:21:44
阅读次数:
62
package algorithm.sort; import java.util.Arrays; /** * 直接插入排序 * 算法思想:将一个记录插入到已排好序的序列中,从而得到一个新的有序序列(将序列的第一个数据看成 * 是一个有序的子序列,然后从第二个记录逐个向该有序的子序列进行有序的插入,直 ...
分类:
编程语言 时间:
2019-12-23 22:22:39
阅读次数:
92
参考资源:https://blog.csdn.net/weixin_41190227/article/details/86600821 参考资源:https://www.cnblogs.com/Glory-D/p/7884525.html 总的来说,排序算法共有十大类,即冒泡排序、选择排序、插入排序 ...
分类:
编程语言 时间:
2019-12-23 22:07:31
阅读次数:
118
插入排序 插入排序是比较简单也比较直接的一种排序算法。它是从一堆数据中取出一个数据并将它插入到已排序的数据中合适的位置。 比如按身高排队,有一个人指挥排队从第二个人开始,按身高把当前的人安插到之前排序好队的合适的位置。 或者打扑克牌,假设我们拿到了10,J,K,A这四张牌,然后拿到了Q这张牌,那如何 ...
分类:
编程语言 时间:
2019-12-17 13:26:31
阅读次数:
86
希尔排序: 希尔排序是对插入排序的优化,将插入排序的交换步长由1增加到h。希尔排序的思想是使数组中任意间隔为h的元素有序。步长调幅为h = 3*h + 1, 也就是1,4,13,40,121,364, 1003....这种步长算法是经过论文证明为比较高效的步长。最开始由最大步长开始排序,最大步长为w ...
分类:
编程语言 时间:
2019-12-17 13:02:22
阅读次数:
108
插入排序 插入排序的基本思想是:每一趟将一个待排序的记录,按器关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。 例如,打扑克牌在抓牌的时要保证抓过的牌有序排列则每抓一张牌,就插入到合适的位置,直到抓完牌为止,即可得到一个有序序列。 可以选择不同的方法在已排好序的记 ...
分类:
编程语言 时间:
2019-12-15 21:45:09
阅读次数:
122
1: 介绍 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本,该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够 ...
分类:
编程语言 时间:
2019-12-15 18:29:32
阅读次数:
91
直接插入排序,希尔排序 求大数阶乘: // 1000 的阶乘 2568 位 #include <stdio.h> int a[3000]; void show(int k) { int i=0; printf("位数 %d 位\n",k); for (i=k-1; i>=0; i--) { prin ...
分类:
其他好文 时间:
2019-12-15 00:54:30
阅读次数:
131
Sort 包介绍 Go 语言标准库 sort 包中实现了几种基本的排序算法:插入排序、快速排序和堆排序,但是在使用 sort 包进行排序时无需具体考虑使用哪种排序方式,因为该方法会根据传入的排序的数据量来进行自动选择合适的排序算法。 func insertionSort(data Interface ...
分类:
其他好文 时间:
2019-12-13 23:56:22
阅读次数:
140