排序演算法:所謂排序,就是使一串記錄,按照其中的某個或某些關鍵字的大小,遞增或遞減排列起來的操作。
交換排序:所謂交換,就是根據序列中兩個記錄鍵值的比較結果來對換這兩個記錄在序列中的位置,交換排序的特點是:將鍵值較大的記錄向序列的尾部移動,鍵值較小的記錄向序列的前部移動。
氣泡排序演算法
演算法思想:
演算法實現演算法的c++實現,實現**來自王治和教授資料結構課堂的總結
void bubble_sort()
}if(!flag)
break;
}}
快速排序演算法
演算法思想:
演算法的c++實現
#include
using
namespace
std;
void qsort(int a, int low, int high)
int first = low;
int last = high;
int key = a[first];/*用字表的第乙個記錄作為樞軸*/
while(first < last)
a[first] = a[last];/*將比第乙個小的移到低端*/
while(first < last && a[first] <= key)
a[last] = a[first];
/*將比第乙個大的移到高階*/
}a[first] = key;/*樞軸記錄到位*/
qsort(a, low, first-1);
qsort(a, first+1, high);
}int main()
; qsort(a, 0, sizeof(a) / sizeof(a[0]) - 1);/*這裡原文第三個引數要減1否則記憶體越界*/
for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
return
0;}
資料結構 排序演算法之交換排序(氣泡排序 快速排序)
1 冒泡 void bubblesort int a,int n 1 設定一標誌性變數pos,用於記錄每趟排序中最後一次進行交換的位置。由於pos位置之後的記錄均已交換到位,故在進行下一趟排序時只要掃瞄到pos位置即可。改進後演算法如下 void bubble 1 int r,int n i pos...
資料結構 排序之交換排序
本節將兩種交換排序氣泡排序和快速排序 氣泡排序是最簡單的交換排序方法,比較相鄰兩個記錄的關鍵字,將大的放到右邊,小的放到左邊,如圖所示 從而使關鍵字小的左移 大的右移 每一次迴圈最右邊的必定是關鍵字最大的元素,外面再加一層迴圈即可得到有序序列。實現 include using namespace s...
資料結構演算法 排序演算法之交換排序 快速排序
快速排序 1 設定兩個 變數i j,排序開始的時候 i 0,j n 1 2 以第乙個 陣列元素作為關鍵資料,賦值給key,即key a 0 3 從j開始向前搜尋,即由後開始向前搜尋 j 找到第乙個小於key的值a j 將a j 和a i 互換 4 從i開始向後搜尋,即由前開始向後搜尋 i 找到第乙個...