摘要:
排序-归并排序基本思想:是指将两个或两个以上的有序表合并成一个新的有序表。具体步骤:(1首先将整个表看成是n个有序子表,每个子表的长度为1。(2)然后两两归并,得到n/2个长度为2的有序子表。(3)然后再两两归并,直至得到一个长度为n的有序表为止。平均时间:O(nlogn)最好情况:O(nlogn)... 阅读全文
2015年10月5日 #
摘要:
排序-插入排序基本思想:将待排序表看作左右两部分,其中左边为有序区,右边为无序区, 整个排序过程就是将右边无序区中的元素逐个插入到左边的有序区中,以构成新的有序区。平均时间:O(n2)最好情况:O(n2)最坏情况:O(n2)辅助空间:O(1)稳定性:不稳定适用场景:n比较小时java实现: 1 ... 阅读全文
摘要:
排序-冒泡排序基本思想:从一端开始,逐个比较相邻的两个元素,发现倒序即交换。 这里按从后往前(从下往上)逐个比较相邻元素。平均时间:O(n2)最好情况:O(n)最坏情况:O(n2)(逆序)辅助空间:O(1)稳定性:稳定适用场景:n比较小时java实现: 1 public static voi... 阅读全文
摘要:
排序-选择排序基本思想:在待排序子表中找出最大(小)元素, 并将该元素放在子表的最前(后)面。平均时间:O(n2)最好情况:O(n2)最坏情况:O(n2)辅助空间:O(1)稳定性:不稳定适用场景:n比较小时java实现: 1 public static void selectSort(in... 阅读全文
摘要:
排序-快速排序基本思想: 将数据划分为两部分,左边的所有元素都小于右边的所有元素;然后,对左右两边进行快速排序。 划分方法: 选定一个参考点(中间元素),所有元素与之相比较,小的放左边,大的放右边。具体步骤: 选择第一个元素作为中间元素。(1)先保存该元素的值到其它位置,腾出其空间。(2)从后往前搜... 阅读全文