排序 冒泡 插入 桶 快速 歸併

2021-08-31 03:49:03 字數 1466 閱讀 3634

氣泡排序

#includeusing namespace std;

int a=;

void printarr(int *a,int length)

} if(flag)

break;

} printarr(a,length);

return 0;

}

應用習題:

車廂重組

在乙個舊式的火車站旁邊有一座橋,其橋面可以繞河中心的橋墩水平旋轉。乙個車站的職工發現橋的長度最多能容納兩節車廂,如果將橋旋轉180度,則可以把相鄰兩節車廂的位置交換,用這種方法可以重新排列車廂的順序。於是他就負責用這座橋將進站的車廂按車廂號從小到大排列。他退休後,火車站決定將這一工作自動化,其中一項重要的工作是編乙個程式,輸入初始的車廂順序,計算最少用多少步就能將車廂排序。

輸入

輸入檔案有兩行資料,第一行是車廂總數n(不大於10000),第二行是n個不同的數表示初始的車廂順序。
輸出
乙個資料,是最少的旋轉次數。
輸入樣例
4

4 3 2 1

輸出樣例
6

歐陽的解

#includeusing namespace std;

int main()

} if(flag)

break;

} cout《插入排序#includeusing namespace std;

int main()

//輸出

for(int i=0;i彭星霖的方法

#includeusing namespace std;

int main() ;

for(int i=1; i<4; i++)

if(a[i]桶排序#includeusing namespace std;

int main();

int k[101];

memset(k,0,sizeof(k));

int n=sizeof(a)/4;

for(int i=0;i0)

cout《快速排序#includeusing namespace std;

void mysort(int *a,int l,int r)

while(i<=mid)

r[k++]=a[i++];

while(j<=e)

r[k++]=a[j++];

for(int i=s;i<=e;i++)

a[i]=r[i];

} int main();

int n = sizeof(a)/4;

int r[n];

mysort(r,a,0,n-1);//對s到e個元素進行分解後歸併

for(int i=0;icout

}

排序(冒泡 選擇 插入 快速 歸併)

今天把之前寫的排序整理了一下,之前寫的有點亂,現在把這些整合在一起,後續在接觸到別的排序演算法會繼續在這篇博文上新增。排序演算法一 氣泡排序public static void bubblesort for int i 0 iarray j 1 for int tem array 排序演算法二 選擇...

排序 冒泡 插入 選擇 快速 歸併

public class sorttest bubblesort array insertsort array selectsort array quicksort array mergesort array for int i 0 i array.length i 氣泡排序 param array...

c排序演算法 選擇 冒泡 插入 快速 歸併 堆排序

1.選擇排序法 includeint main int n 5,i,k,b,x for b 0 b 4 b printf n for i 0 i n 1 i for b 0 b 4 b printf n return 0 2.氣泡排序法 includeint main int n 5,i,k,b,x...