插入排序和堆排序算法
2016-09-25 14:09
183 查看
快速排序算法
插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。(来自百度百科)
堆排序算法
插入排序的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。(来自百度百科)
int j, P; for(int i=1; i<n; i++) { P = a[i]; for(j=i; j>0 && a[j-1]>P; j--) a[j] = a[j-1]; a[j] = P; }
堆排序算法
#define LeftChild(i) (2*(i)+1) void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp; } void PercDown(int *a, int i, int n) { int child; int tmp; for(tmp=a[i]; LeftChild(i)<n; i=child) { child=LeftChild(i); if(child!=n-1 && a[child+1] > a[child]) child++; if(tmp<a[child]) a[i]=a[child]; else break; } a[i] = tmp; } void HeapSort(int *a, int n) { int i; for(int i=n/2; i>=0; i--) PercDown(a, i, n); for(i=n-1; i>0; i--) { swap(&a[0], &a[i]); PercDown(a, 0, i); } }
相关文章推荐
- 第十六周项目1--插入排序之直接插入排序
- 经典算法之三:插入排序及二分优化
- 插入排序
- JAVA几种常见的排序、冒泡、插入、、
- java中已经排序的列表中插入新值
- 用JAVA实现排序算法之二:直接插入排序
- 数据结构与算法:七种排序算法总结(冒泡排序、选择排序、直接插入排序、希尔排序、堆排序、归并排序、快速排序)
- 图解插入排序--直接插入排序
- 直接插入排序基本思想
- 三种低级排序方法(冒泡 选择 插入)
- 插入排序(java实现)
- 插入排序的链表,无头结点
- 【C#数据结构】直接插入排序
- 直接插入排序和选择排序
- 内部排序之插入排序(直接插入排序,二分插入排序,希尔插入排序)
- 数据结构 - 直接插入排序(Straight Insertion Sort) 详解 及 代码(C++)
- Java-数组排序(选择,冒泡,插入)
- 链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
- 直接插入排序