随笔分类 -  排序算法

摘要:先实现关键字划分类;再递归划分,实现排序 阅读全文
posted @ 2017-05-18 21:31 lulushow 阅读(148) 评论(0) 推荐(0)
摘要:先递归,在排序 首先考虑下如何将将二个有序数列合并。这个非常简单,只要从比较二个数列的第一个数,谁小就先取谁,取了后就在对应数列中删除这个数。然后再进行比较,如果有数列为空,那直接将另一个数列的数据依次取出即可。 解决了上面的合并有序数列问题,再来看归并排序,其的基本思路就是将数组分成二组A,B,如 阅读全文
posted @ 2017-05-07 14:16 lulushow 阅读(2952) 评论(0) 推荐(0)
摘要:4.堆排序:(大根堆) ①将存放在array[0,...,n-1]中的n个元素建成初始堆; ②将堆顶元素与堆底元素进行交换,则序列的最大值即已放到正确的位置; ③但此时堆被破坏,将堆顶元素向下调整使其继续保持大根堆的性质,再重复第②③步,直到堆中仅剩下一个元素为止。 堆排序算法的性能分析: 空间复杂 阅读全文
posted @ 2017-05-06 22:47 lulushow 阅读(142) 评论(0) 推荐(0)
摘要:快速排序算法: 通过一次排序将数组分为独立的两部分,一部分均比关键字小,另一部分均比关键字大,再递归对每部分进行关键字排序。 关键字排序:把数组第一个数拿出来做关键字key,数组前后分别设置low,hig指针;将key与hig指针的值从后往前比较,如果key<指针hig的值,hig--,反之交换值; 阅读全文
posted @ 2017-05-05 20:16 lulushow 阅读(123) 评论(0) 推荐(0)