排序算法彙總

  •  快速插入排序
  1. void straight_insertion_sort (int v[], int n) 
  2.     int i; 
  3.     for (i = 1; i<=n-1; i++) { 
  4.         if (v[i] <= v[i-1]) { 
  5.             int tmp = v[i]; 
  6.             int j; 
  7.             for (j = i-1; j>=0; j--) { 
  8.                 if (tmp < v[j]) { 
  9.                     v[j+1] = v[j]; 
  10.                 } else { 
  11.                     break; 
  12.                 } 
  13.             } 
  14.             v[j+1] = tmp; 
  15.         } 
  16.     } 
  • 折半插入排序
  • 起泡排序
  1. void buble_sort (int v[], int n)  
  2.     for (int i=n-2; i>=0; i--) { 
  3.         int swap_flag = 0
  4.         for (int j=0; j<=i; j++) { 
  5.             if (v[j] > v[j+1]) { 
  6.                 int tmp = v[j]; 
  7.                 v[j] = v[j+1]; 
  8.                 v[j+1] = tmp; 
  9.                 swap_flag = 1
  10.             } 
  11.         } 
  12.         if (swap_flag == 0) { 
  13.             break; 
  14.         } 
  15.     } 
  •  簡單選擇排序
  1. void simple_selection_sort (int v[], int n) 
  2.     for (int i=0; i<=n-2; i++) { 
  3.         for (int j=i+1; j<=n-1; j++) { 
  4.             if (v[i] > v[j]) { 
  5.                 int tmp = v[j]; 
  6.                 v[j] = v[i]; 
  7.                 v[i] = tmp; 
  8.             } 
  9.         } 
  10.     } 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章