摘要: 1.选取枢纽元:三数中值分割法,得到的中间值即作为mid,将数组分为arrays[mid]左边的比它小,右边的比它大 2.进行划分partition:首先将arrays[mid]放在arrays[high]处,然后对数组范围内的数值进行比较, (左右两边分别有一个指针来进行寻找,arrays[lef 阅读全文
posted @ 2018-03-27 21:48 SkyeAngel 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 找一个gap,在arrays中,以gap为间隔,分小组,对每一组数据其进行插入排序 然后,减小gap,再依次进行插入排序 注意:其中控制大循环的增量i++,不是i += gap,因为如果是i+=gap的话,就是按照以gap为间隔只排0, gap, 2gap......,其他的1,1+gap,1+2g 阅读全文
posted @ 2018-03-27 21:47 SkyeAngel 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 假设前边部分已经排序, 取出下一个元素,将其与前边的元素依次比较(找坑), 找到合适的位置(在已排序部分),插入进去, 然后继续进行下一次比较,直到结束。 4 2 1 6 3 6 0 -5 1 1 2 4 1 6 3 6 0 -5 1 1 1 2 4 6 3 6 0 -5 1 1 1 2 4 6 3 阅读全文
posted @ 2018-03-27 16:42 SkyeAngel 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 选择排序 两次循环,大小循环,大循环来控制需要交换的位置, 小循环寻找未排序的序列中的最小值的位置,记录位置,然后与大循环记录的位置进行交换。 同样存在会多排序的次数 4 2 1 6 3 6 0 -5 1 1 -5 2 1 6 3 6 0 4 1 1 -5 0 1 6 3 6 2 4 1 1 -5 阅读全文
posted @ 2018-03-27 16:12 SkyeAngel 阅读(87) 评论(0) 推荐(0) 编辑
摘要: 从小到大排序 冒泡排序: 经过两次循环,在每次小循环的时候,比较左右两个数的大小(若左大右小,则交换顺序),依次比较,得到的是最大的那一个放在n-1处, 然后小循环的范围缩小一个,依次进行比较,找出第二大的,放在n-2处,就像冒泡一样,数字按照从大到小一个一个的冒上来。 所以,外面的大循环要控制小循 阅读全文
posted @ 2018-03-27 11:00 SkyeAngel 阅读(149) 评论(0) 推荐(0) 编辑