插入排序

注:本文中排序默認爲從大到小,插入順序從後往前插。
插入排序的思想是將一個數插入到一組已經排好序的子數組中,如果這個數比子數組的最後一個數小,那麼將子數組最後一個數往後移一位,如果這個數比倒數第二個還小,那麼將倒數第二個往後移一位,......直到找到比它大的數,將這個數字插入在比它大的數的後面。

c語言插入排序的實現代碼:

#include <stdio.h>

void insert_sort(int arr[], int n) {
        int i;
        for (i=1;i<n;i++){
                int key = arr[i];
                int pos = i;
                while (pos>0 && arr[pos-1]>key){
                        arr[pos] = arr[pos-1];
                        pos--;
                }
                arr[pos] = key;
        }
}

int main() {
        int arr[] = {4,2,6,5,3};
        insert_sort(arr,5);
        int i;
        for (i=0;i<5;i++) {
                printf("%d\n",arr[i]);
        }
}

python插入排序的實現代碼

def insert_sort(nums):
    len_nums = len(nums)
    for i in range(1,len_nums):
        key = nums[i]
        pos = i
        while pos > 0 and nums[pos-1] > key:
            nums[pos] = nums[pos-1]
            pos -= 1
        nums[pos] = key

if __name__ == '__main__':
    nums = [4,2,6,5,3]
    insert_sort(nums)
    print(nums)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章