Social Icons

twitterfacebookgoogle plusrss feedemail

3/13/2010

資料結構-選擇排序法

 

基礎資料結構-使用C
程式1.4:選擇排序法


這是我按照課本打出來做練習的
不過怪怪的
下面程式碼中的這個stdlib.h原先應該是math.h標頭檔
不過rand()這個函數,我卻在math.h標頭中找不到它
於是我就去stdlib1標頭中找,結果卻被我找到了
於是我將它更換一下,程式碼這樣就可以動了
補充:我下面程式是利用Visual c++來跑的,如果要利用Dev c++來跑,
請把void main(void)改成int main(void)



程式碼如下:
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 101
#define SWAP(x,y,t)((t)=(x),(x)=(y),(y)=(t))
void sort(int[],int);/*選擇排序法*/
void main(void)
{
  int i,n;
  int list[MAX_SIZE];
  /*輸入要生成數字的個數*/
  printf("Enter the number of numbers to generate (1<n<101):");
  scanf("%d",&n);
  if(n<1||n>MAX_SIZE)
  {
    fprintf(stderr,"Improper value of n\n");
 exit(EXIT_FAILURE);
  }
  for(i=0;i<n;i++)
  {
  list[i]=rand( )%1000;
  printf("%d",list[i]);
  printf(" ");
    }
  sort(list,n);
  /*印出已經排序好的數字*/
  printf("\n Sorted arry:\n");
  
  for(i=0;i<n;i++)
  { printf("%d",list[i]);
    printf(" ");
  }
  printf("\n");
  system("pause");
}
void sort(int list[],int n)
{
  int i,j,min,temp;
  for(i=0;i<n-1;i++)
  {
  min=i;
    for(j=i+1;j<n;j++)
 if(list[j]<list[min])
  min=j;
 SWAP(list[i],list[min],temp);
   }
}


如果要複製上方程式碼,請點擊程式碼上方的    圖示會跳出一個視窗,複製即可

成果大致上如下


如果發現文章有錯誤,歡迎留言告知~謝謝指教!

沒有留言:

張貼留言

俗話說
凡走過必留下痕跡,凡住過必留下鄰居
凡爬過必留下樓梯,凡來過必留下IP
看過文章之後歡迎留下您寶貴的意見喔!

 
 
无觅相关文章插件,迅速提升网站流量