關(guān)于這道題我不想多說(shuō),水滴題,最快的方式就是調(diào)用qsort()函數(shù)了,一點(diǎn)技術(shù)含量都沒(méi)有。不過(guò)要是能自己寫出qsort()函數(shù)就不是那么隨意了。
這道題我做了兩遍,第一次是調(diào)用qsort庫(kù)函數(shù),感覺(jué)不過(guò)癮,所以自己又寫了一遍qsort函數(shù)。
#include<stdio.h>
#define M 1010
int main()


{
void sort(int num[],int low,int high);
int T,N;
int num[M];
scanf("%d",&T);
while(T--)

{
int i,j;
scanf("%d",&N);
for(i=0;i<N;i++)
scanf("%d",&num[i]);
sort(num,0,N);
for(i=0;i<N-1;i++)
printf("%d ",num[i]);
printf("%d\n",num[i]);
}
}
void sort(int num[],int low,int high)


{
int po=low;//選取第一個(gè)元素為比較的初始值
int i=low,j=high,term;
if(high-low+1>=2)

{
while(i<=j)

{
for(;j>=i;j--)

{
if(num[j]<num[po])

{
term=num[po];
num[po]=num[j];
num[j]=term;
po=j--;
break;
}
}
for(;j>=i;i++)

{
if(num[i]>num[po])

{
term=num[po];
num[po]=num[i];
num[i]=term;
po=i++;
break;
}
}
}
sort(num,low,po-1);//遞歸調(diào)用
sort(num,po+1,high);
}
}

posted on 2011-08-19 16:48
小鼠標(biāo) 閱讀(196)
評(píng)論(0) 編輯 收藏 引用