當前位置:編程學習大全網 - 編程軟體 - 用C語言編寫壹段程序,對采集的50個浮點數a[50]進行排序

用C語言編寫壹段程序,對采集的50個浮點數a[50]進行排序

#include?<stdio.h>

int?a[101],n;//定義全局變量,這兩個變量需要在子函數中使用

void?quicksort(int?left,int?right)

{

int?i,j,t,temp;

if(left>right)

return;

temp=a[left];?//temp中存的就是基準數

i=left;

j=right;

while(i!=j)

{

//順序很重要,要先從右往左找

while(a[j]>=temp?&&?i<j)

j--;

//再從左往右找

while(a[i]<=temp?&&?i<j)

i++;

//交換兩個數在數組中的位置

if(i<j)//當哨兵i和哨兵j沒有相遇時

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

}

//最終將基準數歸位?

第?1?章?壹大波數正在靠近——排序

19

a[left]=a[i];

a[i]=temp;

quicksort(left,i-1);//繼續處理左邊的,這裏是壹個遞歸的過程

quicksort(i+1,right);//繼續處理右邊的,這裏是壹個遞歸的過程

}

int?main()

{

int?i,j,t;

//讀入數據

scanf("%d",&n);

for(i=1;i<=n;i++)

scanf("%d",&a[i]);

quicksort(1,n);?//快速排序調用

//輸出排序後的結果

for(i=1;i<=n;i++)

printf("%d?",a[i]);

getchar();getchar();

return?0;

}

  • 上一篇:加工中心銑環形槽
  • 下一篇:怎樣才能在頭條直播?
  • copyright 2024編程學習大全網