2018年1月2日

2.6 经典排序算法总结

摘要: 在学习完普利斯顿算法该部分和Algorithms第四版第二章以后,对几大经典排序算法的思想和java实现进行总结,包括选择排序,插入排序,希尔排序,归并排序,快速排序以及堆排序。 一.选择排序 selection sort 1.基本思想:i遍历数组,一直在未分类的元素中找最小的元素,并与a[i]交换 阅读全文

posted @ 2018-01-02 15:50 SunnyCx 阅读(294) 评论(0) 推荐(0)

2.5 3-way quickSort

摘要: 1.排序时,数组含有大量重复元素,应该使用哪种排序手段? (1)mergeSort:与数组的特征无关,比较次数总是在1/2NlgN~NlgN之间 (2)quickSort:当所有的元素全都相同的时候,使用平方次时间 2.3-way partitioning算法的目标: 将数组划分为3部分: (1)l 阅读全文

posted @ 2018-01-02 15:29 SunnyCx 阅读(328) 评论(0) 推荐(0)

2.4 选择第k大的元素 selection

摘要: 1.目标:找到N个元素中,第k大的数。 例如:max是k=N--1;min是k=0;median是k=N/2 2.Quick-select 借鉴了快速排序的思想 (1)利用partition保证: ①a[j] is in place ②左边的元素不大于a[j],右边的元素不小于a[j] (2)在其中 阅读全文

posted @ 2018-01-02 11:19 SunnyCx 阅读(143) 评论(0) 推荐(0)

导航