一開始不太了解拜讀了兩位前輩的文章

杰瑞學習分享:http://jerry17768java.blogspot.tw/2012/08/selection-sort.html   

yehyeh:http://notepad.yehyeh.net/Content/Algorithm/Sort/Selection/1.php

 

    選擇排序法的概念大概是把一群數字設為排序過、未排序過,一開始會先只找出最大或最小的數

    所以j=I+1的用意在於 j是未排序的 要 跟第一個數字相比 如果 比他大就互換 而i是每次要放入的數

 

    //選擇排序法首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,
    //然後再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。 
    //"找到最大的放第一個" 
    int a[10]={9,10,8,7,6,5,4,3,2,1};
    int tmp=0;
    for(int i=0;i<10;i++){
        for(int j=i+1;j<10;j++)
        //j=i+1 是假設已經有一個排序的去跟未排序的做比較 
            if(a[i]>a[j]){
                tmp=a[j];
                a[j]=a[i];
                a[i]=tmp;
            }
        }
    }

    for(int j=0;j<10;j++)
    {
        cout<<a[j]<<endl;
    }

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 晨柚 的頭像
    晨柚

    晨柚的部落格

    晨柚 發表在 痞客邦 留言(0) 人氣()