排序
文章平均质量分 67
JM_1013
三分热度,七分埋怨
展开
-
冒泡排序(Bubble Sort)
* 冒 泡 排 序 (Bubble Sort)*关键思想时间复杂度空间复杂度稳定性 √实例:[6 3 8 2 9 1](Java)Case1:左 ← 右(从小到大排序)Case2:左 → 右(从小到大排序)Case3:左 ← 右【优化】(从小到大排序)关键思想顺序依次比较相邻两个元素,倒序则交换。时间复杂度Time ComplexityValue最优时间复杂度O(...原创 2018-12-19 16:58:32 · 467 阅读 · 0 评论 -
快速排序(Quick Sort)
* 快 速 排 序 (Quick Sort)*关键思想时间复杂度空间复杂度稳定性 ×实例:[12 5 4 19 25 1 34 7 10 23 8 5](Java)Case1:Start = KEY(从小到大排序)Case2:End = KEY(从小到大排序)Case3:Random = KEY【优化Case1】(从小到大排序)Case4:Random = KEY【优化Case2】(从小到大排序)...原创 2018-12-26 21:52:07 · 229 阅读 · 0 评论 -
直接插入排序(Direct Insertion Sort)
* 直 接 插 入 排 序 (Direct Insertion Sort)* 关键思想时间复杂度空间复杂度稳定性 √实例:[12 5 4 9 5](Java)关键思想序列分成左右两部分(左边是有序区,右边是无序区),将无序区中的元素逐个依次插入有序区中。注意:适用于基本有序、规模小的序列!时间复杂度Time ComplexityValue最优时间复杂度O(n)O...原创 2018-12-28 14:22:30 · 321 阅读 · 0 评论 -
希尔排序(Shell Sort)
* 希 尔 排 序(Shell Sort)*关键思想时间复杂度空间复杂度稳定性 ×实例:[100 8 20 16 14 7 105 50 78 9](Java)关键思想将序列划分成若干组,每一组内部各自进行直接插入排序,最后对整个序列进行直接插入排序。时间复杂度Time ComplexityValue最优时间复杂度O(n)O(n)O(n)最差时间复杂度O(...原创 2018-12-28 17:08:43 · 308 阅读 · 1 评论 -
直接选择排序(Direct Selection Sort)
* 直 接 选 择 排 序(Direct Selection Sort)*关键思想时间复杂度空间复杂度稳定性 ×实例:[5 2 4 8 6 1 3 7](Java)关键思想将待排序子序列中最大(小)元素放置于最后(前)面。时间复杂度Time ComplexityValue最优时间复杂度O(n2)O(n^{2})O(n2)最差时间复杂度O(n2)O(n^{2...原创 2018-12-31 20:57:10 · 379 阅读 · 0 评论 -
堆排序(Heap Sort)
* 堆 排 序(Heap Sort)*堆关键思想时间复杂度空间复杂度稳定性 ×实例:[12 15 30 80 100 46 78](Java)Case1:大根堆Case1.1:从小到大排序Case1.2:从大到小排序Case2:小根堆Case2.1:从大到小排序Case2.2:从小到大排序堆序列(a1,a2,…,an)(a_1,a_2,…,a_n)(a1,a2,…,an)当且仅当满足以...原创 2019-01-02 21:57:41 · 480 阅读 · 0 评论 -
二路归并排序(Two-way Merge Sort)
* 二 路 归 并 排 序(Two-way Merge Sort)*归并关键思想时间复杂度空间复杂度稳定性 √实例:[15 18 25 60 18 75 100 23 64 8 150](Java)归并将两个或两个以上的有序序列合并成一个新的有序序列。关键思想首先将整个序列看成是nnn个有序子序列,每一个子序列的长度是111,然后两两归并,获得n/2n/2n/2个长度是222的有序子...原创 2019-01-07 15:27:06 · 1346 阅读 · 0 评论