C語言簡單選擇排序

簡單選擇排序(Simple Selection Sort)(從小到大)的基本思想:首先,選出最小的數,放在第一個位置;然後,選出第二小的數,放在第二個位置;以此類推,直到所有的數從小到大排序。

#include<stdio.h>

void SelectSort(int a[],int n){ //選擇排序
    int mix,temp;
    int i,j;
    for(i=0;i<n-1;i++){ //每次循環數組,找出最小的元素,放在前面,前面的即爲排序好的
        mix=i; //假設最小元素的下標
        for(j=i+1;j<n;j++) //將上面假設的最小元素與數組比較,交換出最小的元素的下標
            if(a[j]<a[mix])
                mix=j;
        //若數組中真的有比假設的元素還小,就交換
        if(i!=mix) {
            temp=a[i];
            a[i]=a[mix];
            a[mix]=temp;
        }
    }
}

int main(){
    int a[10] = {9,1,5,8,3,7,4,6,2,0};
    int i;
    SelectSort(a, 10);
    for(i=0;i<10;i++)
        printf("%d ",a[i]);
    printf("\n");
    return 0;
}

最佳情況:T(n) = O(n^2)  最差情況:T(n) = O(n^2)  平均情況:T(n) = O(n^2)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章