八大排序经典算法
文章平均质量分 61
xulu_258
努力便是晴天
展开
-
直接插入排序的c语言实现
直接插入排序即是在要排序的数组中,假设前n-1(n>=2)个数已经是排好序的,现在要把第n个数插入到前n个已经排好序的数组中,使得这n个数也变成有序的,如此反复循环,使得要排序的数组中的最后一个元素也排好序, 我们可以先假设第一个数是排好序的,然后第二个数和第一个数进行比较,如果第二个数比第一个数大,那么说明前两个数排好序,无需做调整,如果第二个数比第一个数小,那么就把第一个数向原创 2016-05-03 21:01:23 · 11903 阅读 · 2 评论 -
堆排序的c语言实现
说到堆排序,其实就是首先建立一个大顶堆或者小顶堆,然后把他的最顶上的元素输出,然后让最顶上的元素与最后的元素进行交换并删除最后一个元素,依次输出则得到排好序的元素。 具体代码实现如下(已通过编译并成功运行): #include void swap(int a[],int x,int y) { int temp=0; temp=a[x]; a[x]=a[y]; a[原创 2016-05-04 15:35:43 · 701 阅读 · 0 评论 -
希尔排序的c语言实现代码
算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。 具体代码如下: //希尔排序 #include void shellsort(int a[],int n) { int原创 2016-05-04 19:38:43 · 2107 阅读 · 0 评论 -
快速排序的c语言实现代码
快速排序的基本思想就是选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。 具体代码如下: //快速排序实现 #include int partion(int data[],int low,int high) { int t原创 2016-05-04 23:12:25 · 7323 阅读 · 0 评论