随笔分类 -  SORT

摘要:太晚了,明天有时间在写算法思路,先贴代码 ———————————————————————————————————————————————— 刚答辩完,毕业好难,感觉自己好水 ———————————————————————————————————————————————— 解题思路: 由低位到高位进行 阅读全文
posted @ 2016-12-14 00:04 wilderness 阅读(236) 评论(0) 推荐(0)
摘要:这篇文章包含了插入排序,希尔排序,堆排序,归并排序和快速排序,是前几篇文章的集合。 一共包括三个文件 sort.h sort.cpp main.cpp 1.main.cpp 2.sort.h 3.sort.cpp 阅读全文
posted @ 2016-12-14 00:00 wilderness 阅读(310) 评论(0) 推荐(0)
摘要:快速排序,平均运行时间O(N log N),最坏运行时间O(N^2)。 我觉得先看Python版的快排算法(http://www.cnblogs.com/fcyworld/p/6160558.html)比较容易理解。 整体思路: 首先从数组中选出一个值pivot,然后依据这个值pivot,把数组分成 阅读全文
posted @ 2016-12-13 23:54 wilderness 阅读(279) 评论(0) 推荐(0)
摘要:归并排序运行时间O(N log N),但是由于需要线性附加内存,所以很少用于主存排序。 算法核心在于以下三条语句,分治递归,分别对左半边和右半边的数组进行排序,然后把左右半边的数组一一进行比较放入数组 下面是代码,主要包括三个函数: 阅读全文
posted @ 2016-12-13 23:08 wilderness 阅读(263) 评论(0) 推荐(0)
摘要:堆排序,时间复杂度O(N log N),实际使用中慢于使用Sedgewick增量的增量排序。 大致思路: 1.先在数组中建堆,如果是增量排序,则需要建一个大堆 2.每循环一次,把最大的数,也就是nums[0],放入堆尾,同时把nums[0]下滤 阅读全文
posted @ 2016-12-13 22:20 wilderness 阅读(228) 评论(0) 推荐(0)
摘要:今晚更新几个排序算法 插入排序,时间复杂度O(n^2),从前往后遍历,每遍历到一个值的时候,其前面的所有值已经完成排序,把这个值插入适当位置 阅读全文
posted @ 2016-12-13 21:30 wilderness 阅读(303) 评论(0) 推荐(0)
摘要:Python版的快排,使用递归。 1.设置递归终止条件,当元素个数<1时 2.从列表中pop出一个元素pv 3.列表中的剩余值与pv进行对比,大的放入smaller列表,小的放入larger列表 4.返回qs(smaller)+[pv]+qs(larger) 代码如下: 阅读全文
posted @ 2016-12-11 21:03 wilderness 阅读(1437) 评论(0) 推荐(0)
摘要:这个题为《编程珠玑》中提到的算法,解题思路和桶排序/基数排序一样,适用于大量没有重复的数据。 结题思路: 1.遍历整个数据文件,每提取一个数据,在BitMap中对应的位置赋1 2.遍历BitMap的每一位,为1的位置上输出其再BitMap中的坐标 阅读全文
posted @ 2016-12-08 22:44 wilderness 阅读(325) 评论(0) 推荐(0)