快速排序.
用O(n2)的會咻~碰
輸入說明 :
只有一組測資
就是把檔案中所有的數字排序
請用EOF
請將n 由大排到小.
至多有 100001 個數字(我本來就想讓大家MLE...
輸出說明 :
請將 排序好的數列 輸出
記得要間隔
不必換行.
範例輸入 :
1 4 3 5 2
範例輸出 :
5 4 3 2 1
程式碼 :
#include<stdio.h> void qsort(int n[], int left, int right) { int i = left, j = right+1, temp; int ii = left-1, jj = j; if(left < right) { while(1) { while((i+1)<jj && n[++i]>n[left]); while((j-1)>ii && n[--j]<n[left]); if(i >= j) break; temp = n[i]; n[i] = n[j]; n[j] = temp; } temp = n[left]; n[left] = n[j]; n[j] = temp; qsort(n, left, j-1); qsort(n, j+1, right); } } int main() { int i,j,n[100000]; char nouse; i = 0; while(scanf("%d%c",&n[i++],&nouse)==2) { if(nouse == '\n') { qsort(n,0,i-1); for(j=0; j<i; j++) printf("%d ",n[j]); printf("\n"); i = 0; } } return 0; }
http://zerojudge.tw/ShowProblem?problemid=d075
沒有留言:
張貼留言