2017年5月15日

桶排序

摘要: 假设现在有一组小于M的正整数 a1、 a2 ,…… ,an ,对它们排序可以采用以下的思路:使用一个大小为M的数组buckets,这个数组的每一个单元称为一个个的bucket,桶,初始化全部为0。扫描数组a,当扫描到ai的时候,buckets[ai] 加1。这样当a扫描完之后,扫描buckets,打 阅读全文

posted @ 2017-05-15 21:13 wu_xin 阅读(121) 评论(0) 推荐(0) 编辑

选择问题(选择数组中第K小的数)

摘要: 由排序问题可以引申出选择问题,选择问题就是选择并返回数组中第k小的数,如果把数组全部排好序,在返回第k小的数,也能正确返回,但是这无疑做了很多无用功,由上篇博客中提到的快速排序,稍稍修改下就可以以较小的时间复杂度返回正确结果。 代码如下: 思想很不错,值得学习。 夜深了,,, 唉,失恋的人就是矫情, 阅读全文

posted @ 2017-05-15 20:12 wu_xin 阅读(255) 评论(0) 推荐(0) 编辑

快速排序

摘要: 快速排序是在实践中最快的已知算法,它的平均运行时间是O(NlogN),该算法的基本思想如下: 1、如果数组S中的元素个数为0或者1,则直接返回 2、在原来要排序的数组中选取一个元素v,称为枢纽元 3、将S-{v}分成两个不想交的集合:S1为小于等于v的元素,S2为大于等于v的元素 4、重复上面的步骤 阅读全文

posted @ 2017-05-15 19:47 wu_xin 阅读(114) 评论(0) 推荐(0) 编辑

导航