1. 程式人生 > 資訊 >華為路由 H6 將於 4 月 27 日 10:08 預售,5 月末正式開售

華為路由 H6 將於 4 月 27 日 10:08 預售,5 月末正式開售

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

//交換元素
void swap(int arr[],int i, int j){
    arr[i] = arr[i]+arr[j];
    arr[j] = arr[i] - arr[j];
    arr[i] = arr[i]- arr[j];
}
/*
 選擇排序(Selection sort)是一種簡單直觀的排序演算法。
 它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的一個元素,
 存放在序列的起始位置,直到全部待排序的資料元素排完。
 選擇排序是不穩定的排序方法(比如序列[5, 5, 3]
 第一次就將第一個[5]與[3]交換,導致第一個5挪動到第二個5後面)
 */
 //選擇排序(從無序區選擇一個元素進行比找最小元素,然後直接放在有序區)
void selectSort(int *arr,int length) {
    for (int i = 0; i < length - 1; i++) {

        /*
         把陣列看成兩個區,有序區和無序區
         初始狀態有序區為空,無序區全部元素
         然後從無序區找最小元素,放在有序區。
         假設第0個元素看作最小的元素,然後和剩餘的元素比較
         如果在剩餘的元素中有更小的則標記下標,直至找到最小的元素
         然後如果標記的下標和開始下標不同則交換元素。
         不斷的找尋最小的元素,直到元素被找完
         第一小、第二小、第三小,。。。。
         */
        int min = i;
        //在剩餘的元素中找到最小的元素
        for (int j = i + 1; j < length; j++) {
            if (arr[j] < arr[min]) {
                min = j;
            }
        }
        //進行交換,如果min發生變化,則進行交換
        if (min != i) {
            swap(arr,min,i);
        }
    }
}

轉載於:https://my.oschina.net/hehuiqi/blog/1592730