2015年12月27日

排序算法(五)——快速排序

摘要: 快速排序和归并排序一样都是基于递归求解,将问题划分成两个子问题,时间复杂度都是O(nlogn),不同的是快速排序的是基于元素与选定x的大小关系来划分。PS:一般我们选定序列第一个元素作为选定x。 示例序列:9 4 8 6 5 2 1 3 7 10 将9作为选定标准进行划分,小于等于9的都放在左边,大 阅读全文

posted @ 2015-12-27 22:53 法杰拉 阅读(289) 评论(0) 推荐(0) 编辑

排序算法(四)——归并排序

摘要: 归并排序时间复杂度为O(nlogn); 假设有序列list[begin,......,end],以mid=(begin+end)/2作为划分点,将序列划分为list[beging,....,mid]和list[mid+1,.......,end],分别进行排序,我们只需要将这两个已经排好序的序列归并 阅读全文

posted @ 2015-12-27 22:09 法杰拉 阅读(349) 评论(0) 推荐(0) 编辑

2015年12月25日

排序算法(三)——插入排序

摘要: 插入排序算法思想: 将无序序列最左端的元素插入到有序序列中 示例代码: #include <iostream> using namespace std; void swap(int &a,int &b){ int temp=a; a=b; b=temp; return;}void Insert_so 阅读全文

posted @ 2015-12-25 21:44 法杰拉 阅读(178) 评论(0) 推荐(0) 编辑

排序算法(二)——选择排序

摘要: 上篇博客介绍了冒泡算法,接下来介绍插入排序和选择排序. 选择排序; 算法思想:从无序序列中找到最大(或最小)元素,放在序列的最右边(或最左边)。 代码如下: #include <iostream> using namespace std; void swap(int &a,int &b) { int 阅读全文

posted @ 2015-12-25 21:16 法杰拉 阅读(213) 评论(0) 推荐(0) 编辑

2015年12月23日

排序算法(一)——冒泡排序

摘要: 刚开始自己的博客,就从最基本的排序算法开始吧,最近自己也在复习算法相关的内容。 这里先讲讲时间复杂度为O(n2)的几种排序算法吧——冒泡排序,选择排序,插入排序;以上排序皆以升序为例,数组为list[begin..........end]。 冒泡排序: 名字很形象,就像烧开水冒泡一样,小的在底下,大 阅读全文

posted @ 2015-12-23 23:01 法杰拉 阅读(252) 评论(0) 推荐(0) 编辑

导航