c 中一些常用排序演算法的實現

2021-10-24 04:47:39 字數 3428 閱讀 7264

#include

using

namespace std;

intmain()

for(

int i =

0; i < n;

++i)}}

for(

int i =

0; i < n;

++i)

cout << endl;

}

#include

#include

using

namespace std;

intmain()

for(

int i =

0; i < n;

++i)

}swap

(arr[i]

, arr[index]);

}for

(int i =

0; i < n;

++i)

cout << endl;

}

#include

#include

using

namespace std;

intmain

(void

)for

(int i =

1; i < n;

++i)

}for

(int i =

0; i < n;

++i)

cout << endl;

return0;

}

#include

#include

using

namespace std;

intmain

(void

)int increasment = n;do}

}}while

(increasment>1)

;for

(int i =

0; i < n;

++i)

cout << endl;

return0;

}

#include

#include

using

namespace std;

void

quicksort

(int left,

int right,

int arr)

int i, j;

i = left;

j = right;

int t = arr[left]

;while

(i < j)

}//把找到的值和一開始的基值進行交換

arr[left]

= arr[i]

; arr[i]

= t;

//遞迴呼叫

quicksort

(left, i -

1, arr)

;//每次right的值改變

quicksort

(i+1

, right, arr)

;//每次left的值改變

}int

main()

quicksort(0

, n -

1, arr)

;for

(int i =

0; i < n;

++i)

cout << endl;

}

#include

#include

using

namespace std;

//合併演算法

void

mege

(int arr,

int start,

int end,

int mid,

int temp)

else

}//把剩下的也放進temp中 比如1 2 7 3 6就會把7剩下

//i中剩餘

while

(i_start <= i_end)

//j中剩餘

while

(j_start <= j_end)

//吧temp中的資料覆蓋到源空間

for(

int i =

0; i < len;

++i)

}//歸併

void

mergesort

(int arr,

int start,

int end,

int temp)

int mid =

(start + end)/2

;//左邊

mergesort

(arr, start, mid, temp)

;//右邊

mergesort

(arr, mid +

1, end, temp)

;//合併

mege

(arr, start, end, mid, temp);}

intmain()

mergesort

(arr,

0, n -

1, temp)

;for

(int i =

0; i < n;

++i)

cout << endl;

delete

arr;

arr =

null

;delete

temp;

temp =

null

;}

#include

#include

using

namespace std;

//arr等待調整的陣列(二叉樹)

//i 下標

//陣列的長度

void

headadjust

(int arr,

int index,

int len)

if(rchild>arr[temp]

)//如果temp不等於原來傳入的結點,那說明孩子結點跟父結點發生了改變

if(temp > index)

}void

headsort

(int arr,

int len)

//堆頂元素和最後乙個元素進行交換

for(

int j = len -

1; j >=0;

--j)

}int

main()

;headsort

(arr,5)

;for

(int i =

0; i <5;

++i)

cout << endl;

}

常用的一些排序演算法(C 實現)

常用的排序演算法有氣泡排序,選擇排序,插入排序,歸併排序 希爾排序,堆排序等 1 冒泡 氣泡排序就是像旗袍一樣,最大的值逐漸上浮,我的實現方法是採用遞迴的,當然也可以不用遞迴 void bubblesort2 int array,int length if index length 1 bubble...

一些常用演算法 排序

1.冒泡法 1 比較第乙個數和第二個數,若為逆序a 0 a 1 則交換,以此類推 直到第n 1個數和第n個數比較完為止 第一次氣泡排序,結果最大的數被安置在最後乙個元素位置上。2 對前n 1個數進行第二次氣泡排序,結果使次大的數被安置在n 1的位置上。3 重複上述過程,經過n 1次氣泡排序後,排序結...

一些常用的排序演算法

排序演算法 插入排序 直接插入排序 折半排序 希爾排序 交換排序 氣泡排序 快速排序 選擇排序 簡單選擇排序 堆排序 歸併排序 分配排序 箱排序 基數排序 author kevin public class sorting else break 折半排序,降序 在乙個有序的子檔案中,用折半查詢方法查...