スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

クイックソート(1)

クイックソートを行う関数を作成する。
分割基準となる要素を配列の先頭要素とする。

#include

#define N 10

void display(int array[], int num){
int loop;
for(loop=0;loop printf("%d ", array[loop]);
}
printf("\n");
}


void quickSort(int bottom, int top, int data[]){

int lower, upper, div;

lower = bottom;
upper = top;
div = data[bottom]; /* 基準値 */

while(true){

while(data[lower] < div)
lower++;
while(div < data[upper] )
upper--;

if(lower >= upper)
break;
/* 入れ替え */
int temp = data[lower];
data[lower] = data[upper];
data[upper] = temp;

}

display(data, N); /* 途中経過を表示 */

if(bottom < lower -1)
quickSort(bottom, lower-1, data);
if(upper + 1 < top)
quickSort(upper+1, top, data);
}


void main(void){

int array[N] = {2,10,5,8,4,3,6,1,9,7};
printf("sort start\n");
display(array, N);
printf("quicksort\n");
quickSort(0, N-1, array);

}
スポンサーサイト
プロフィール

tjnet777

Author:tjnet777
Solaris, VPNのサポート業務を1年

金融系SIerで業務アプリの開発、メンテを3年半

離職して大学院大学 1年生

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。