From 7e721e3746785d1d8a9e4bc864b07f3eb27cb79f Mon Sep 17 00:00:00 2001 From: SunnyQjm Date: Tue, 23 Jun 2020 15:28:29 +0800 Subject: [PATCH] add: sort --- sort/5_bubble-sort.py | 34 ++ sort/6_select-sort.py | 22 ++ sort/7_insert-sort.py | 23 ++ sort/sort.assets/image-20200623152602006.png | Bin 0 -> 12403 bytes sort/sort.assets/image-20200623152621892.png | Bin 0 -> 20544 bytes sort/sort.assets/image-20200623152633095.png | Bin 0 -> 18603 bytes sort/sort.assets/insert-sort-base.png | Bin 0 -> 2819 bytes sort/sort.assets/insert-sort-fifth.png | Bin 0 -> 16323 bytes sort/sort.assets/insert-sort-first.png | Bin 0 -> 5459 bytes sort/sort.assets/insert-sort-fourth.png | Bin 0 -> 8255 bytes sort/sort.assets/insert-sort-second.png | Bin 0 -> 8206 bytes sort/sort.assets/insert-sort-sixth.png | Bin 0 -> 13390 bytes sort/sort.assets/insert-sort-third.png | Bin 0 -> 10870 bytes sort/sort.assets/select-sort.png | Bin 0 -> 18664 bytes sort/sort.assets/sort.png | Bin 0 -> 18565 bytes sort/sort.assets/sort2.png | Bin 0 -> 15627 bytes sort/sort.assets/sort_base.png | Bin 0 -> 2712 bytes sort/sort.drawio | 1 + sort/sort.md | 317 +++++++++++++++++++ 19 files changed, 397 insertions(+) create mode 100644 sort/5_bubble-sort.py create mode 100644 sort/6_select-sort.py create mode 100644 sort/7_insert-sort.py create mode 100644 sort/sort.assets/image-20200623152602006.png create mode 100644 sort/sort.assets/image-20200623152621892.png create mode 100644 sort/sort.assets/image-20200623152633095.png create mode 100644 sort/sort.assets/insert-sort-base.png create mode 100644 sort/sort.assets/insert-sort-fifth.png create mode 100644 sort/sort.assets/insert-sort-first.png create mode 100644 sort/sort.assets/insert-sort-fourth.png create mode 100644 sort/sort.assets/insert-sort-second.png create mode 100644 sort/sort.assets/insert-sort-sixth.png create mode 100644 sort/sort.assets/insert-sort-third.png create mode 100644 sort/sort.assets/select-sort.png create mode 100644 sort/sort.assets/sort.png create mode 100644 sort/sort.assets/sort2.png create mode 100644 sort/sort.assets/sort_base.png create mode 100644 sort/sort.drawio create mode 100644 sort/sort.md diff --git a/sort/5_bubble-sort.py b/sort/5_bubble-sort.py new file mode 100644 index 0000000..120a667 --- /dev/null +++ b/sort/5_bubble-sort.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +# coding=utf-8 + +################################################################################### +# 冒泡排序 +################################################################################### + + +# 第一轮采用正向遍历的冒泡排序代码示例 +def bubbleSort(A): + n = len(A) + for i in range(n - 1): + for j in range(n - i - 1): + if A[j] > A[j + 1]: + A[j], A[j + 1] = A[j + 1], A[j] + + +# 第一轮采用反向遍历的冒泡排序代码示例 +def bubbleSort2(A): + n = len(A) + for i in range(n - 1, 0, -1): + for j in range(i): + if A[j] > A[j + 1]: + A[j], A[j + 1] = A[j + 1], A[j] + + +if __name__ == '__main__': + A = [5, 7, 1, 3, 6, 2, 4] + bubbleSort(A) + print(A, "= [1, 2, 3, 4, 5, 6, 7]") + + A = [5, 7, 1, 3, 6, 2, 4] + bubbleSort2(A) + print(A, "= [1, 2, 3, 4, 5, 6, 7]") diff --git a/sort/6_select-sort.py b/sort/6_select-sort.py new file mode 100644 index 0000000..9332da5 --- /dev/null +++ b/sort/6_select-sort.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +# coding=utf-8 + +################################################################################### +# 选择排序 +################################################################################### + + +def selectSort(A): + n = len(A) + for i in range(n - 1): + minValueIndex = i + for j in range(i + 1, n): + if A[j] < A[minValueIndex]: + minValueIndex = j + A[i], A[minValueIndex] = A[minValueIndex], A[i] + + +if __name__ == '__main__': + A = [5, 7, 1, 3, 6, 2, 4] + selectSort(A) + print(A, "= [1, 2, 3, 4, 5, 6, 7]") diff --git a/sort/7_insert-sort.py b/sort/7_insert-sort.py new file mode 100644 index 0000000..e37b585 --- /dev/null +++ b/sort/7_insert-sort.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python +# coding=utf-8 + +################################################################################### +# 插入排序 +################################################################################### + + +def insertSort(A): + n = len(A) + for i in range(1, n): + curIndex = i + for j in range(curIndex - 1, -1, -1): + if A[j] > A[curIndex]: + A[j], A[curIndex], curIndex = A[curIndex], A[j], j + else: + break + + +if __name__ == '__main__': + A = [5, 7, 1, 3, 6, 2, 4] + insertSort(A) + print(A, "= [1, 2, 3, 4, 5, 6, 7]") diff --git a/sort/sort.assets/image-20200623152602006.png b/sort/sort.assets/image-20200623152602006.png new file mode 100644 index 0000000000000000000000000000000000000000..b796fda43320f0cf86140cbdc1933491449b5e0e GIT binary patch literal 12403 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 literal 0 HcmV?d00001 diff --git a/sort/sort.assets/image-20200623152621892.png b/sort/sort.assets/image-20200623152621892.png new file mode 100644 index 0000000000000000000000000000000000000000..cb0e3d05b2738c2101ff3ebcd529b2660a9e6506 GIT binary patch literal 20544 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 literal 0 HcmV?d00001 diff --git a/sort/sort.assets/image-20200623152633095.png b/sort/sort.assets/image-20200623152633095.png new file mode 100644 index 0000000000000000000000000000000000000000..7fceb1a363e0840e4a21793c00397a75543a1635 GIT binary patch literal 18603 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 P5HWbV`njxgN@xNA-`g@u literal 0 HcmV?d00001 diff --git a/sort/sort.assets/insert-sort-base.png b/sort/sort.assets/insert-sort-base.png new file mode 100644 index 0000000000000000000000000000000000000000..50be6ba09b000076be014444bee6f7f6e2ed9645 GIT binary patch literal 2819 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 literal 0 HcmV?d00001 diff --git a/sort/sort.assets/insert-sort-first.png b/sort/sort.assets/insert-sort-first.png new file mode 100644 index 0000000000000000000000000000000000000000..85a3b16bc4a2ea1841963ce0266f0d4ab5e61883 GIT binary patch literal 5459 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 literal 0 HcmV?d00001 diff --git a/sort/sort.assets/insert-sort-fourth.png b/sort/sort.assets/insert-sort-fourth.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a89fe40280aa2f209fabecda127f4018e9027a GIT binary patch literal 8255 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

YyA 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 literal 0 HcmV?d00001 diff --git a/sort/sort.assets/insert-sort-third.png b/sort/sort.assets/insert-sort-third.png new file mode 100644 index 0000000000000000000000000000000000000000..2da8c0db618f5f2388eb413ce27960996891c71e GIT binary patch literal 10870 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 z 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πCq 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 Wl|Qc5ga2SehtSf~EK#?){=Wb@3}!q4 literal 0 HcmV?d00001 diff --git a/sort/sort.assets/sort.png b/sort/sort.assets/sort.png new file mode 100644 index 0000000000000000000000000000000000000000..2a9774ee831a5cc1dd1fd328a8ef2c34ebe8d357 GIT binary patch literal 18565 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 U7d6xZ{>T}EfE#EPYT8}=KcQ8*HUIzs literal 0 HcmV?d00001 diff --git a/sort/sort.assets/sort_base.png b/sort/sort.assets/sort_base.png new file mode 100644 index 0000000000000000000000000000000000000000..87442d9f9bb2280de4bd790c8c8ef0d480bd50b3 GIT binary patch literal 2712 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 literal 0 HcmV?d00001 diff --git a/sort/sort.drawio b/sort/sort.drawio new file mode 100644 index 0000000..0122dbc --- /dev/null +++ b/sort/sort.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/sort/sort.md b/sort/sort.md new file mode 100644 index 0000000..2a00aef --- /dev/null +++ b/sort/sort.md @@ -0,0 +1,317 @@ +# 排序算法总结 + +> 参考: +> +> - [三种基本排序(选择、冒泡、插入)](https://zhuanlan.zhihu.com/p/42252896) + +## 1. 冒泡排序 + +主要思想:每轮依次 **从前往后** 比较相邻的两个元素,将两个元素中 **较大的排在后面** , **每一轮** 可以将当前 **未排序部分最大的置于最后**。(每轮通过冒泡的方式将当前未排序部分最大的元素冒出) + +> 提示:有每轮将最大的冒出这种方式冒泡,自然有每轮将最小的冒出到头部这种方式,这边所说的冒泡指的是前者(PPT里面说的也是前者啦) + +### 1.1 简单演示 + +> - 白色背景表示未排序部分 +> - 灰色背景表示已排序部分 +> - 淡蓝色表示正在进行对比交换的两个元素 + +- **初始状态** + + ![sort_base](sort.assets/sort_base.png) + + - 初始状态有n=7个元素,所以 **第一轮需要对n个元素进行n-1次交换尝试**; + - 所谓交换尝试即如果左边元素大于右边元素,即执行交换 => $A[j + 1] > A[j]$ 或 $A[j] > A[j - 1]$ + +- **第一轮** + + ![sort](sort.assets/sort.png) + + - **第一轮** 结束就 **有一个数已经排好序** 了(它是数组中最大的元素,第一轮结束位于数组末尾),还剩n-1个元素未排序; + - 所以 **第二轮需要对n-1个元素进行n-2次交换尝试**; + +- **第二轮** + + ![sort2](sort.assets/sort2.png) + + - **第二轮** 结束 **有两个数已经排好序** 了,还剩n-2个元素未排序; + - 所以 **第三轮需要对n-2个元素进行n-3次交换尝试** + +- 之后的若干轮操作相同,此处省略 + +### 1.2 实现分析 + +对于一个长度位n的待排序数组A,我们作如下分析 + +- 根据上面的演示分析,对于一个长度为n的数组,我们需要n-1轮对其排好序; + + => 在代码实现部分,轮数对应于第一个for循环: + + ```python + # 如果第一个for循环选择正向遍历,我们可以如下表示(我们后续讨论前者,后者不过是偏移不同而已): + for i in range(n - 1) 或 for i in range(1, n) + + # 如果第一个for循环选择反向遍历,我们可以如下表示(PPT中选择下面两种表示中的前面一种表示,我们后续讨论前者,后者不过是偏移不同而已): + for i in range(len(A) - 1, 0, -1) 或 for i in range(len(A) - 2, -1, -1) + ``` + +- 对于第 i 轮,有m个数未排好序,对应于第二层for循环,至于具体如何表示,取决于第一层for循环如何表示(无论正向还是反向,**核心就是:本轮如果有m个元素待排序,第二个for循环就应该有m - 1次交换尝试**): + + ```python + # 如果第一个for循环选择正向遍历,则两层循环的表示如下: + for i in range(n - 1): + for j in range(n - i - 1): + + # 如果第一个for循环选择反向遍历,则两层循环的表示如下(PPT中选择如下表示): + for i in range(len(A) - 1, 0, -1): + for j in range(i): + ``` + +- 因为我们的目标是 **每轮将最大的数冒泡到末尾** ,所以对于循环内部,我们每次就是比较相邻两个数,如果左边的数大于右边的数,就交换两个数: + + ```python + if A[j] > A[j + 1]: + A[j], A[j + 1] = A[j + 1], A[j] + ``` + +### 1.3 实现 + +```python +# 第一个for循环采用正向遍历的冒泡排序代码示例 +def bubbleSort(A): + n = len(A) + for i in range(n - 1): + for j in range(n - i - 1): + if A[j] > A[j + 1]: + A[j], A[j + 1] = A[j + 1], A[j] + + +# 第一个for循环采用反向遍历的冒泡排序代码示例 +def bubbleSort2(A): + n = len(A) + for i in range(n - 1, 0, -1): + for j in range(i): + if A[j] > A[j + 1]: + A[j], A[j + 1] = A[j + 1], A[j] + + +if __name__ == '__main__': + A = [5, 7, 1, 3, 6, 2, 4] + bubbleSort(A) + print(A, "= [1, 2, 3, 4, 5, 6, 7]") + + A = [5, 7, 1, 3, 6, 2, 4] + bubbleSort2(A) + print(A, "= [1, 2, 3, 4, 5, 6, 7]") + +``` + +## 2. 选择排序 + +主要思想:每轮依次 **从未排序部分选出一个最小的元素放置于未排序序列的第一个位置**。 + +> 注意: +> +> - PPT中没有统一,其实现刚好是反过来的,它每轮依次 **从未排序部分选出一个最大的元素放置于未排序序列的最后一个位置** +> +> - PPT中选择排序反向实现,插入排序又正向实现,这边统一都改成正向实现,比较好对比 + +### 2.1 简单演示 + +> - 白色背景表示未排序部分 +> - 灰色背景表示已排序部分 +> - 淡绿色指示下一个放置本轮最小元素的位置 +> - 淡黄色指示本轮最小元素 + +- **初始状态** + + ![sort_base](sort.assets/sort_base.png) + + - 初始状态有n=7个元素,所以 **第一轮需要从n个元素选出一个最小的与第一个元素交换**; + +- **排序过程** + + ![select-sort](sort.assets/select-sort.png) + + - 每一轮都从未排序序列中选出一个最小的,与未排序序列中的第一个元素交换; + - 共 **需n - 1轮** + +### 2.2 实现分析 + +> PPT中的实现与下述过程基本相似,但是PPT的代码实现是,每轮选一个最大的放在未排序列表的最后 + +对于一个长度位n的待排序数组A,我们作如下分析: + +- 根据上面的演示分析,对于一个长度为n的数组,我们需要n-1轮对其排好序; + + => 在代码实现部分,轮数对应于第一个for循环: + + ```python + # 由于选择排序很直观就是一个从左往右的过程,所以一般第一个for循环都是正向遍历 + for i in range(n - 1) + ``` + +- 对于第 i 轮,有m个数未排好序,对应于第二层for循环,具体表示如下(**核心就是:如果本轮有m个数未排好序,我们就让初始索引为第一个数,然后依次比对剩下的m-1个数有没有比初值小的**): + + ```python + for i in range(n - 1): + minValueIndex = i + for j in range(i + 1, n): + if A[j] < A[minValueIndex]: + minValueIndex = j + ``` + +- 最后在每轮结束后进行交换: + + ```python + for i in range(n - 1): + minValueIndex = i + for j in range(i + 1, n): + if A[j] < A[minValueIndex]: + minValueIndex = j + if minValueIndex != i: + A[i], A[minValueIndex] = A[minValueIndex], A[i] + ``` + +### 2.3 实现 + +```python +def selectSort(A): + n = len(A) + for i in range(n - 1): + minValueIndex = i + for j in range(i + 1, n): + if A[j] < A[minValueIndex]: + minValueIndex = j + if minValueIndex != i: + A[i], A[minValueIndex] = A[minValueIndex], A[i] + +if __name__ == '__main__': + A = [5, 7, 1, 3, 6, 2, 4] + selectSort(A) + print(A, "= [1, 2, 3, 4, 5, 6, 7]") +``` + +## 3. 插入排序 + +主要思想:每轮 **从未排序部分取一个元素插入到已经排序好的队列中,保证新的元素插入之后的新队列依旧是有序的。** + +### 3.1 简单演示 + +> - 白色背景表示未排序部分 +> - 灰色背景表示已排序部分 +> - 砖红色背景指示其是本轮待插入的目标元素 +> - 淡黄色背景指示目标元素此次要对比的元素(淡换色背景的元素是上一轮排序的元素) + +- **初始状态** + + ![insert-sort-base](sort.assets/insert-sort-base.png) + + - 初始状态有n=7个元素,初始时,第一个元素属于已经排好序的元素,所以 **第一轮需要将第二个元素插入到一排序的序列**; + +- **第一轮** + + ![insert-sort-first](sort.assets/insert-sort-first.png) + + ---- + + + +- **第二轮** + + ![insert-sort-second](sort.assets/insert-sort-second.png) + + ----- + + + +- **第三轮** + + ![insert-sort-third](sort.assets/insert-sort-third.png) + + ---- + + + +- 第四轮 + + ![insert-sort-fourth](sort.assets/insert-sort-fourth.png) + + ---- + + + +- 第五轮 + + ![insert-sort-fifth](sort.assets/insert-sort-fifth.png) + + ---- + + + +- 第六轮 + + ![insert-sort-sixth](sort.assets/insert-sort-sixth.png) + +### 3.2 实现分析 + +对于一个长度位n的待排序数组A,我们作如下分析: + +- 根据上面的演示分析,对于一个长度为n的数组,我们需要n-1轮对其排好序; + + => 在代码实现部分,轮数对应于第一个for循环: + + ```python + # 由于选择排序很直观就是一个从左往右的过程,所以一般第一个for循环都是正向遍历 + for i in range(1, n) + ``` + +- 对于第 i 轮,我们需要将下标为 i 的元素插入到 A[0 : i - 1] 组成的有序列表当中,具体表示如下(**核心就是:每次都和当前元素左边的元素比较,如果左边元素比当前元素大,就交换,直到遇到小于等于自己的元素,跳出第二层循环**): + + ```python + for i in range(1, n): + curIndex = i + for j in range(curIndex - 1, -1, -1): + if A[j] > A[curIndex]: + A[j], A[curIndex], curIndex = A[curIndex], A[j], j + else: + break + ``` + +### 3.3 实现 + +> 这个实现就和冒泡很像了,但是与冒泡相比,我们始终用一个下标跟踪我们当前要插入的元素 + +```python +def insertSort(A): + n = len(A) + for i in range(1, n): + curIndex = i + for j in range(curIndex - 1, -1, -1): + if A[j] > A[curIndex]: + A[j], A[curIndex], curIndex = A[curIndex], A[j], j + else: + break + + +if __name__ == '__main__': + A = [5, 7, 1, 3, 6, 2, 4] + insertSort(A) + print(A, "= [1, 2, 3, 4, 5, 6, 7]") +``` + +## 4. 冒泡、选择、插入排序对比 + +| | 主要思想 | 实现 | +| -------- | ------------------------------------------------------------ | ------------------------------------------------------------ | +| 冒泡排序 | 每轮依次 **从前往后** 比较相邻的两个元素,将两个元素中 **较大的排在后面** ,
**每一轮** 可以将当前 **未排序部分最大的置于最后**。(每轮通过冒泡的方式将当前未排序部分最大的元素冒出) | ![image-20200623152602006](sort.assets/image-20200623152602006.png) | +| 选择排序 | 每轮依次 **从未排序部分选出一个最小的元素放置于未排序序列的第一个位置**。 | ![image-20200623152621892](sort.assets/image-20200623152621892.png) | +| 插入排序 | 每轮 **从未排序部分取一个元素插入到已经排序好的队列中,保证新的元素插入之后的新队列依旧是有序的。** | ![image-20200623152633095](sort.assets/image-20200623152633095.png) | + +| | 代码特征 | 是否稳定 | 最好 | 最坏 | 平均 | +| :------: | :----------------------------------------------------------: | :------: | -------- | :------: | :------: | +| 冒泡排序 | **只在第二层循环内进行交换尝试,第二个循环体前后都无需额外操作** | 是 | $O(n)$ | $O(n^2)$ | $O(n^2)$ | +| 选择排序 | **在第二个层循环体之前记录初始化最小数下标,第二个循环体内更新该坐标,最后在第二个循环体结束的时候使用该坐标进行交换操作** | 否 | $O(n^2)$ | $O(n^2)$ | $O(n^2)$ | +| 插入排序 | **在第二层循环体之前记录当前要插入的元素的下标,在第二个循环体内部用类冒泡的方式将其插入到合适的位置,第二个循环体之后无需操作** | 是 | $O(n)$ | $O(n^2)$ | $O(n^2)$ | + +> - 上述所说代码特征是一些常用实现的写法有的,但是也有一些奇葩实现法可能特征不一样(PPT中的插入排序实现就和这边特征不一样) \ No newline at end of file