程式要求:將資料{18,2,20,33,13}由大到小,並將排序的過程列印出來

演算法:在找到比目前大或小的數字時,先記錄其位置或索引值,待確定後再進行資料的交換,而這樣的方法我們稱之為選擇排序法

我是用氣泡完再去比對成選擇性排序..不知道有沒有其他的演算法可以直接用選擇性排序的..

示意圖:

流程示意  

運行結果:

運行結果      

Code:

----------------------從底下開始----------------------

#include <cstdlib>
#include <iostream>

int data[5]={18,2,20,33,13};
int sorted[5];
int i,j,k;
int count;
int tempInt;

int main(int argc, char *argv[])
{
  printf("原始數質:");
  for(i=0;i<5;i++)
  {
  sorted[i]=data[i];
  printf(" %d",sorted[i]);
 }
 printf("\n");
 
 for(i=0;i<5;i++)
 {
  for(j=0;j<5;j++)
  {
   if(sorted[i]>sorted[j])
   {
       tempInt=sorted[i];
       sorted[i]=sorted[j];
       sorted[j]=tempInt;
      }
  }
 }
 for(i=0;i<5;i++) //33,20,18,13,2  18,2,20,33,13
 {
  for(j=1;j<5;j++)
  {
   if(sorted[i]==data[j])
   {
    tempInt=data[i];
    data[i]=data[j];
    data[j]=tempInt;
    printf("第%d次Sorted:",++count);
    for(k=0;k<5;k++)
    {
     printf(" %d",data[k]);
    }
    printf("\n");
   }
    }
 }


    system("PAUSE");
    return EXIT_SUCCESS;
}

--------------------------從以上結束----------------------

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 蛋酒 的頭像
    蛋酒

    藍色代表憂鬱 那我代表什麼

    蛋酒 發表在 痞客邦 留言(0) 人氣()