c,c 中的排序演算法

2021-08-27 05:02:24 字數 1320 閱讀 1430

1.氣泡排序。解釋:即從第乙個元素依次和後面的元素比較,如果大則交換位置。

例子:待排序陣列:9,8,7,6

第一輪排序,第一步:9>8,二者交換位置後8,9,7,6

第二步:9>7,二者交換位置後8,7,9,6

第三步,9>6,二者交換位置後8,7,6,9

第二輪排序:7.6.8.9

第三輪排序:6,7,8,9

即:每輪排序至少有乙個元素就位!

#include "stdafx.h"

#includeusing namespace std;

int main(int argc, char* argv)

; int i=0,j;

cout<<"before sorted:";

while(iarr[j+1])

j++;

} i++;

} cout<<"after sorted:";

int t=0;

while(t2.插入排序。前面為有序序列,後面為無序序列。無序序列元素插入到前面有序序列的適當位置中。

待排序陣列:9,8,7,6

第一輪:8,9,7,6

第二輪:7,8,9,6

第三輪:6,7,8,9

#include "stdafx.h"

#includeusing namespace std;

#define ncount sizeof(arr)/sizeof(arr[0])//ncount=10

int main(int argc, char* argv)

; int i=0;

//輸出陣列

cout<<"before sorted:";

while(i=0&&te***.選擇排序。即選擇後序序列最小的乙個元素和第乙個交換位置。

待排序陣列:9,3,4,6

第一輪:3,9,4,6(後序最小值3和第乙個元素交換位置)

第二輪:3,4,9,6(後序最小值4和第二個元素交換位置)

第三輪:3,4,6,9(後序最小值6和第三個元素交換位置)

#include "stdafx.h"

#includeusing namespace std;

#define ncount sizeof(arr)/sizeof(arr[0])

int main(int argc, char* argv)

; int i=0;

//輸出陣列

cout<<"before sorted:";

while(i總結:演算法比較:三種排序的平均時間複雜度均為o(n²),但氣泡排序交換次數多,效能較差。

C C 中的經典排序演算法總結

在c c 中,有一些經典的排序演算法,例如 氣泡排序 雞尾酒排序或雙向氣泡排序 改進的氣泡排序 選擇排序 直接插入排序 歸併排序 快速排序 希爾排序和堆排序等等。下面對這些排序演算法進行一一解析並給出示例 以共享之。氣泡排序是最基本的排序演算法,之所以稱之為氣泡排序是因為在氣泡排序的過程中總是大數往...

排序演算法c c

include void bubble sort1 int array,int arraysize int main void bubble sort1 array,5 排序好後為 1 2 3 4 5 int i for i 0 i 5 i printf d array i puts 以前做排序為了...

推排序演算法C C

在堆排序演算法中,我們使用的是最大堆。下面的 是給定一組數,構造乙個最大堆。left heap,location 和right heap,location 分別返回陣列heap中location的左右孩子的索引。max heapify heap,i 是確保heap陣列的i的左右孩子都滿足最大堆化。b...