排序
文章平均质量分 78
Peter_Pang
这个作者很懒,什么都没留下…
展开
-
冒泡排序的实现
冒泡排序的实现本人大二刚学完数据结构,后悔之前没认真学习各种排序,现在开始记录自己自学的情况。冒泡排序顾名思义,可以理解为将相对较大或较小的值向后或向前依次移动。下面记录一下冒泡的过程————:首先,我们给出一个数组来存储一串无序的数值:int arr[MaxSize]={8,7,6,5,1,2};第一次循环趟数当前第一趟 8>77 8 6 5 1 2...原创 2019-08-30 23:15:30 · 151 阅读 · 0 评论 -
插入排序的实现(直接插入、折半插入)
插入排序还记得大二下期数据结构期末考试有一道题就有插入排序。我感觉平时都理解了他的原理,但是一到敲代码的时候就不能完整的实现这个算法,以至于在不该丢分的地方丢了分,这也是很吃亏的地方。好了,来总结一下插入排序。首先,插入排序需要构建“有序表”,这是非常关键的一部分。我们通过用有序表外的数值与有序表内的数值比较,并且移动和交换就可以实现插入排序了。什么是有序表呢?1 2 4 3 5我们从...原创 2019-08-31 23:25:28 · 286 阅读 · 0 评论 -
希尔排序的实现
希尔排序希尔排序是通过将需要排序的数组按照一个gap值将数组划分为gap组,并且在每组中单独进行排序,随着gap数值的减小,数组也会逐渐接近有序,但是此时数组并不一定是完全有序的。最后当gap为1时,数组进行直接插入排序。然而,在数据基本有序时,直接插入排序的效率是最快的。希尔排序则巧妙的利用了这一特点。首先,增量设置为数组最大长度MaxSize/2,将数组按照增量分组接下来分别将这三组数...原创 2019-09-05 19:14:20 · 836 阅读 · 0 评论 -
快速排序的实现
快速排序今天学习了快速排序,概念还是比较简单,在快速排序中用到了分治的概念,将数组按照一个基准分为两部分,将比基准大的数全部放到基准的右边,将比基准小的数全部放到基准的左边。并且重复这个操作。首先定义变量 i,j temp并且分别另i=0;j=MaxSize-1 ; temp=arr[0];开始从后往前找,如果遇到一个数比temp小,就交换arr[j]和arr[i],在这一趟j变为6,i不...原创 2019-09-05 22:18:00 · 210 阅读 · 1 评论 -
简单选择排序的实现
简单选择选择排序选择排序的基本思路是每趟循环从待排序的元素中选区一个最小的数,并且和待排序区的第一个元素交换,每一趟循环后,有序区的元素个数就会加一,最后直到第MaxSize-1次循环后排序完成。下面举个例子,假设数组【5,2,1,4,3】在第一趟循环时,将会找到数组中最小的数1和待排序区的第一个元素交换,我们的待排序区的起点是从0开始接下来1已经是有序区的元素了,所以待排序区下标后移一...原创 2019-09-06 21:01:45 · 580 阅读 · 0 评论