排序>>交换排序>>冒泡排序
List:
| 12345 | 0.概念+伪代码+示例分析1.基本冒泡排序2.冒泡排序改进13.冒泡排序改进2——局部冒泡排序4.Question |
- start
基本概念:
维基百科http://zh.wikipedia.org/wiki/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F
伪代码:(来自百科)
| 123456789 | function bubblesort (A : list[1..n]) { var int i, j; for i from n downto 1 { for j from 0 to i–1 { if (A[j] > A[j+1]) swap(A[j], A[j+1]) } }} |
简要排序过程的示例:(基本冒泡排序)
初始数组
| 1 | [50, 10, 30, 20, 40, 60] |
第一轮:
| 12345 | cmp 50 10 -> change [10, 50, 30, 20, 40, 60]cmp 50 30 -> change [10, 30, 50, 20, 40, 60]cmp 50 20 -> change [10, 30, 20, 50, 40, 60]cmp 50 40 -> change [10, 30, 20, 40, 50, 60]cmp 50 60 -> nochange |
第二轮:
| 12345 | [10, 30, 20, 40, 50, 60]cmp 10 30 -> nochangecmp 30 20 -> change [10, 20, 30, 40, 50, 60]cmp 30 40 -> nochangecmp 40 50 -> nochange |
第三轮
| 1234 | [10, 20, 30, 40, 50, 60]cmp 10 20 -> nochangecmp 20 30 -> nochangecmp 30 40 -> nochange |
第四轮:
排序>>交换排序>>冒泡排序
List:
| 12345 | 0.概念+伪代码+示例分析1.基本冒泡排序2.冒泡排序改进13.冒泡排序改进2——局部冒泡排序4.Question |
- start
基本概念:
维基百科http://zh.wikipedia.org/wiki/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F
伪代码:(来自百科)
| 123456789 | function bubblesort (A : list[1..n]) { var int i, j; for i from n downto 1 { for j from 0 to i–1 { if (A[j] > A[j+1]) swap(A[j], A[j+1]) } }} |
简要排序过程的示例:(基本冒泡排序)
初始数组
| 1 | [50, 10, 30, 20, 40, 60] |
第一轮:
| 12345 | cmp 50 10 -> change [10, 50, 30, 20, 40, 60]cmp 50 30 -> change [10, 30, 50, 20, 40, 60]cmp 50 20 -> change [10, 30, 20, 50, 40, 60]cmp 50 40 -> change [10, 30, 20, 40, 50, 60]cmp 50 60 -> nochange |
第二轮:
| 12345 | [10, 30, 20, 40, 50, 60]cmp 10 30 -> nochangecmp 30 20 -> change [10, 20, 30, 40, 50, 60]cmp 30 40 -> nochangecmp 40 50 -> nochange |
第三轮
| 1234 | [10, 20, 30, 40, 50, 60]cmp 10 20 -> nochangecmp 20 30 -> nochangecmp 30 40 -> nochange |
第四轮:
| 123 | [10, 20, 30, 40, 50, 60]cmp |