![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
xyTianZhao
当你的能力驾驭不了你的野心时,那么你该学习了、、、
展开
-
希尔排序
基本思想: 想将整个待排序的记录序列分割成为若干个子序列分别进行直接插入排序,带整个序列中的记录“基本有序”时,在对全体记录进行依次直接插入排序 操作方法: 1、选择一个增量序列t1,t2,.......tk,其中ti > tk,tk = 1; 2、按增量序列个数k,对序列进行k趟排序; 3、每趟排序,根据对应的增量ti,将待排序列分割原创 2015-04-25 21:03:42 · 622 阅读 · 0 评论 -
直接插入排序
基本思想: 现将序列的第一个纪录看成是一个有序的子序列,然后从第二个记录逐个进行插入,直至整个序列有序化为止。 要点: 设立哨兵,作为临时存储和判断数组边界用的。 完整代码: #include void printfA(int a[],int n,int i) { int j; printf("第 %d 趟:\n",i); fo原创 2015-04-21 19:07:57 · 487 阅读 · 0 评论 -
简单选择排序
基本思想: 在要排序的一组数中,选出最小(或者最大)的一个数与第1个位置的数交换;然后在剩下的数当中再找最小(或者最大)的与第2个位置的数交换,依次类推,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止。 简单选择排序的示例: 操作方法: 第一趟,从n 个记录中找出关键码最小的记录与第一个记录交换; 第二趟,从第二个记录开始的n-1原创 2016-02-20 21:54:14 · 642 阅读 · 0 评论 -
冒泡排序
基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。 冒泡排序的示例: 冒泡排序算法的改进 对冒泡排序常见的改进方法是加入一标志性变量exchange,用于标志某一趟排序过程中是否有数据交换,如果进行某一原创 2016-02-20 21:09:22 · 683 阅读 · 0 评论 -
快速排序
基本思想:(挖坑填数+分治法) 1)选择一个基准元素,通常选择第一个元素或者最后一个元素, 2)通过一趟排序讲待排序的记录分割成独立的两部分,其中一部分记录的元素值均比基准元素值小。另一部分记录的 元素值比基准值大。 3)此时基准元素在其排好序后的正确位置 4)然后分别对这两部分记录用同样的方法继续进行排序,直到整个序列有序。 快速排序的示例: (a)一趟排序的原创 2016-02-20 22:41:28 · 554 阅读 · 0 评论