各种排序算法的总结
2012-05-08 09:20
393 查看
概要:
这是本人以前学习数据结构时,写的一些排序算法。今天整理一下,方便以后查阅。
本文实现的排序算法包括:直接插入排序、折半插入排序、2路插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序
一、具体实现
关于各算法的特点和思想原理,本文不作介绍,需要了解的,可查阅数据结构书籍,或直接google
主函数main
二、总结
实现一遍后,对各算法都理解了。不知为啥,项目中一碰到要排序,立马就是冒泡!why?
这是本人以前学习数据结构时,写的一些排序算法。今天整理一下,方便以后查阅。
本文实现的排序算法包括:直接插入排序、折半插入排序、2路插入排序、希尔排序、冒泡排序、快速排序、简单选择排序、堆排序、归并排序
一、具体实现
关于各算法的特点和思想原理,本文不作介绍,需要了解的,可查阅数据结构书籍,或直接google
主函数main
void main() { // int a[max]={4,4,9,5,17,6,20,45,30,54,25}; int a[max]={3,13,56,34,14,46,34,6,9,56,20}; printf("直接插入排序\n\n请输入 %d 个待排序的整数:\n",max); int i; // for (i=0;i<max;i++) // { // scanf("%d",&a[i]); // } printf("\n\n原始数据 待排序的整数为:\n"); for ( i=0;i<max;i++) { printf("%d\t",a[i]); } // InsertSort(a,max); // BInsertSort(a,max); // P2_InsertSort(a,max); // ShellSort_2(a,max); // BubbleSort(a,max); QuickSort_2(a,0,max-1); // QS(a,max); // SelectSort(a,max); // HeapSort(a,max); // MSort(a,0,max-1); // Msort_NRecur(a,max); printf("\n直接插入排序,结果为:\n"); for ( i=0;i<max;i++) { printf("%d\t",a[i]); } }
二、总结
实现一遍后,对各算法都理解了。不知为啥,项目中一碰到要排序,立马就是冒泡!why?