前提
void X_Sort ( ElementType A[], int N )
  大多数情况下,为简单起见,讨论从小大的整数排序
  N是正整数
  只讨论基于比较的排序(> = < 有定义)
  只讨论内部排序
  稳定性:任意两个相等的数据,排序前后的相对位置不发生改变

 

1.冒泡排序

数据结构学习笔记06排序 (冒泡、插入、希尔、堆排序、归并排序)(从小到大排序)

物理意义:大泡泡往下沉,小泡泡往上冒

每次比较相邻两个泡泡,符合条件,交换位置,每一轮比较完,最大的泡泡沉到最底下。

最好情况:顺序T = O( N )
最坏情况:逆序T = O( N^2 )

稳定

 1 #include <stdio.h>
 2 
 3 typedef int ElementType;
 4 
 5 void BubbleSort(ElementType A[], int N)
 6 {
 7     for(int P = N-1; P >= 0; P--) {
 8         int flag = 0;
 9         for(int i = 0; i < P; i++) {
10             if( A[i] > A[i+1] ) {
11                 ElementType temp = A[i];    //swap A[i] A[i+1]
12                 A[i] = A[i+1];
13                 A[i+1] = temp;
14                 flag = 1;
15             }
16         }
17         if(flag == 0)
18             break;
19     }
20 }
21 
22 int main()
23 {
24     int a[] = {34,8,64,51,32,21};
25     BubbleSort(a,6);
26     for(int i = 0; i < 6; i++)
27         printf("%d ",a[i]);
28     
29     return 0;
30 } 
BubbleSort

相关文章: