24h購物| | PChome| 登入
2009-05-23 19:26:27| 人氣574| 回應0 | 上一篇 | 下一篇

快速排序.

推薦 0 收藏 0 轉貼0 訂閱站台

想法:良葛格筆記  進去看唄

/***********************************************************/

#include<stdio.h>
#include<stdlib.h>
int partition(int[], int, int);
void quicksort(int[], int, int);
main()
{
 int a,n;
 int num[100001]={0},top=0;
 while(scanf("%d",&n)!=EOF)
  {num[top]=n;top++;}
 quicksort(num,0,top-1);
   for(a=0;a<top;a++)
  printf("%d ",num[a]);
  printf("\n");
 return 0;
}
int partition(int num[],int left,int right)
{
  int a=left-1,b,s=num[right];
  for(b=left;b<right;b++)
   {
     if(num[b]>=s)
       {
         a++;
         int temp;
         temp=num[a];
         num[a]=num[b];
         num[b]=temp;
       }
   }
         int temp;
         temp=num[a+1];
         num[a+1]=num[right];
         num[right]=temp;
   return a+1;
}
void quicksort(int num[],int left,int right)
{
 int q;
 if(left<right)
   {
     q=partition(num,left,right);
     quicksort(num,left,q-1);
     quicksort(num,q+1,right);
   }
}

台長: 來源不明

您可能對以下文章有興趣

人氣(574) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ZeroJudge 基礎+原創題庫 |
此分類下一篇:完全數-----Hard
此分類上一篇:Parallelogram! And triangle!!

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文