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