数据结构与算法
artadonis
大三在读
展开
-
归并排序
归并排序 *思想:将两个或两个以上的有序序列合并成一个新的有序序列。 时间复杂度: 空间复杂度: 改进方法: 归并排序是一种稳定的排序算法。分而治之,每个递归过程涉及三个步骤.1.分解: 把待排序的 n个元素的序列分解成两个子序列, 每个子序列包括 n/2个元素;2.治理: 对每个子序列分别调用归并排序mergeSort, 进行递归操作;3.合并: 合并两个排好序的子序列,生成排序原创 2016-05-27 15:08:58 · 248 阅读 · 0 评论 -
直接选择排序
思想:假设有n个数据,经过n-1趟比较,每趟比较都选出未排元素中最小的元素(排好的不用管),分别放在序列的第一个位置,第二个位置,第三个位置直到所有数据都放到合适的位置,排序完成。时间复杂度:O(n^2)空间复杂度:O(1)优化:直接选择排序的优化版为堆排序。注意:1.直接选择排序的最好、最坏以及平均时间复杂度都是O(n^2);2.直接选择排序是一种稳定的排序算法。代码的思路分析:写代码原创 2016-05-27 22:37:16 · 320 阅读 · 0 评论 -
直接插入排序
直接插入排序原创 2016-07-21 11:16:18 · 257 阅读 · 0 评论 -
希尔排序
/* 思想:选择一个间隔,将待排序列分成不同的组,先对每一组进行排序,然后再减小间隔,重新分组并进行排序,直到间隔为1时,对 * 所有元素进行一次直接插入排序。 * 时间复杂度:最好情况,O(n);最坏情况,O(nlogn);平均情况:O(nlogn)。 * 空间复杂度:O(1)。 * 稳定性:不稳定。 * * 假定有一个10个数据的数组,数组下标从0 ~ 9表示,当h原创 2016-07-21 13:43:13 · 221 阅读 · 0 评论