基礎練習数列ソートC【ブルーブリッジカップ】
リソース制限時間制限:1.0 sメモリ制限:512.0 MB
問題は、長さnの数列を指定し、この数列を小さい順に並べます.1<=n<=200入力フォーマットの第1の動作は整数nである.2行目はn個の整数を含み、ソートされる数であり、各整数の絶対値は10000未満である.出力フォーマットは1行を出力し、ソート後の数列を小さい順に出力します.サンプル入力5 8 3 6 4 9
サンプル出力3 4 6 8 9は一般的なテーマ空間が大きいと感じて、時間の制限は比較的に明らかで、急速にソートします. 関数呼び出しの配列は元の配列に影響を及ぼし、 の3つの場合が等価である.クイックソートの説明:https://www.runoob.com/w3cnote/quick-sort.html
問題:
問題は、長さnの数列を指定し、この数列を小さい順に並べます.1<=n<=200入力フォーマットの第1の動作は整数nである.2行目はn個の整数を含み、ソートされる数であり、各整数の絶対値は10000未満である.出力フォーマットは1行を出力し、ソート後の数列を小さい順に出力します.サンプル入力5 8 3 6 4 9
サンプル出力3 4 6 8 9
void sort(int *s);
void sort(int s[]);
void sort(int s[10]);
問題:
#include
void quick_sort(int s[], int l, int r){
if(l<r){
int i = l, j = r, x = s[l];
while(i<j){
while(i<j && s[j]>=x)
j--;
s[i] = s[j];
while(i<j && s[i]<x)
i++;
s[j--] = s[i];
}
s[i] = x;
quick_sort(s, l, i-1);
quick_sort(s, i+1, r);
}
}
int main()
{
int n;
scanf("%d",&n);
int s[n];
int i;
for(i=0; i<n; i++){
scanf("%d",&s[i]);
}
quick_sort(s, 0, n-1);
for(i=0; i<n; i++){
printf("%d ",s[i]);
}
return 0;
}