幾種常用的比較排序實現

2021-08-27 08:49:35 字數 1317 閱讀 1801

練習了一下幾種常用的比較排序演算法,包括氣泡排序、選擇排序、插入排序、快速排序、歸併排序等。

#include #include #include using namespace std;

// 氣泡排序

// 最簡單的實現方法,比較相鄰兩數,把大數冒到後邊

void bubblesort(int a, int n)

} }}// 選擇排序

// 從i - n-1個數中選出最大(小)的

void choosesort(int a, int n) }}

// 插入排序

// i之前已排好序,將i插入到相應位置

void insertsort(int a, int n) }}

// 快速排序(遞迴)

// 類似遞迴的使用二分策略

void quicksort(int a,int left, int right)

int temp = a[left];

int i = left;

int j = right;

while (i != j) }

a[left] = a[i];

a[i] = temp;

quicksort(a,left,i-1);

quicksort(a,i+1,right);

}// 歸併排序(分治思想)(遞迴的方式實現)

// 合併

void merge(int a, int start, int mid, int end, int b)

else

}while (i <= mid)

while (j <= end)

for (i = 0; i < k; i++) }

// 歸併排序遞迴主演算法

void msort(int a, int left, int right, int b)

}// 統一介面

void mergesort(int a, int n)

int main()

;// bubblesort(a,10);

// choosesort(a,10);

// insertsort(a,10);

// quicksort(a,0,9);

mergesort(a,10);

for(int i = 0; i < 10; i++)

cout << a[i] << ' ';

cout << endl;

system("pause");

return 0;

}

目前自己的程式設計功底還很不紮實,還需要多加練習。

幾種常用排序演算法的比較

菜鳥前路,帶你感受不一樣的程式設計之路!1.選擇法 演算法要求 例 用選擇法對10個整數按降序排序。演算法分析 每趟選出乙個最值和無序序列的第乙個數交換,n個數共選n 1趟。第i趟假設i為最值下標,然後將最值和i 1至最後乙個數比較,找出最值的下標,若最值下標不為初設值,則將最值元素和下標為i的元素...

幾種排序演算法的實現與比較

排序演算法比較 利用隨機函式產生n個隨機整數,利用直接插入排序 折半插入排序,起泡排序 快速排序 選擇排序 堆排序,基數排序七種排序方法進行排序 結果為由小到大的順序 並比較次數和交換次數。這裡是源 include using namespace std include include includ...

幾種排序演算法的實現和比較

穩定性 穩定 最壞時間複雜度o n 2 最好時間複雜度o n 平均時間複雜度o n 2 void bubble sort int a,int n if flag break 穩定性 穩定 平均時間複雜度o n 2 最壞時間複雜度o n 2 最好時間複雜度o n void insert sort in...