排序(冒泡、选择、插入、希尔、归并、快速)-插入排序

时间:2024-06-01 16:16:54

基本原理

插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到 {\displaystyle O(1)} {\displaystyle O(1)}的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。

void InsertionSort(int* num,int numsize){  
    for (int i = 1; i < numsize; ++i) {  
        int temp = num[i];  
        for (int j = i-1; j < numsize; ++j) {  
            if(num[j]>temp){  
                num[j+1] = num[j];  
                j--;  
            }  
            num[j+1] = temp;  
        }  
    }  
}