摘要: 原理:1.取序列第一个记录为枢纽记录,其关键字为Pivotkey;指针low指向序列第一个位置,指针high * 指向序列最后一个位置; * 2.从high指向的记录开始,向前找到一个关键字的值小于Pivotkey的记录,将其放到low指向的 * 位置,low++; * 3.从low指向的记录开始, 阅读全文
posted @ 2017-03-04 10:33 竹芒 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 原理:将两个或两个以上的有序表,合并成一个新的有序表的过程 时间复杂度:O(nlogn) 空间复杂度:归并排序算法稳定,数组需要O(n)的额外空间,链表需要O(log(n))的额外空间 原理及代码: 原理:将两个或两个以上的有序表,合并成一个新的有序表的过程 时间复杂度:O(nlogn) 空间复杂度 阅读全文
posted @ 2017-03-04 10:27 竹芒 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 原理:将一个数通过比较后,插入到一个有序的序列中去,使插入数后的序列仍是一个有序序列; 时间复杂度:O(n^2) 空间复杂度:最优(已排好序)为0.其它情况为O(1);平均空间复杂度为O(1) 核心算法代码: 原理:将一个数通过比较后,插入到一个有序的序列中去,使插入数后的序列仍是一个有序序列; 时 阅读全文
posted @ 2017-03-04 09:53 竹芒 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 选择排序: 原理:每一趟(eg:i=1,2,3......n-1)在后面n-i+1个待排序记录中通过n-i次比较, 选出关键字最小的记录,与第i个记录交换 时间复杂度:O(n^2) 平均空间复杂度为:O(1) 算法核心代码如下: 原理:每一趟(eg:i=1,2,3......n-1)在后面n-i+1 阅读全文
posted @ 2017-03-04 09:34 竹芒 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序: 原理: 将关键字较小的值不断地上浮,将关键字值较大的不断下沉; 时间复杂度:O(n^2) 空间复杂度:最优(即已经排好序)为0,平均空间复杂度为O(1); 核心代码: for(int i=0;i<n;i++){ for(int j=i;j<n;j++){ if(num[i]>num[j] 阅读全文
posted @ 2017-03-04 09:23 竹芒 阅读(302) 评论(0) 推荐(0) 编辑