插入排序 python golang实现

插入排序

思路:从下标为1的地方开始遍历数组,选择 J 插入到前面有序队列的合适位置,保证前面部分有序


插入排序示意图.png

C++实现:

template
void insertionSort(T arr[], int n) {
    for (int i = 1; i < n; i++)
        for (int j = i; j > 0; j--) {
            if (arr[j] < arr[j - 1])
                swap(arr[j], arr[j - 1]);
            else
                break;
        }
}

GoLang实现:

func insertSort(slice []int) {
    for i := 1; i < len(slice); i++ {
        for j := i; j > 0; j-- {
            if slice[j] < slice[j-1] {
                slice[j], slice[j-1] = slice[j-1], slice[j]
            } else {
                break
            }
        }
    }
}

python实现:

def insertSort(lst):
    for i in range(1,len(lst)):
        for j in range(i,0,-1):
            if lst[j-1]>lst[j]:
                lst[j-1],lst[j]=lst[j],lst[j-1]
            else:
                break

插入排序为稳定排序,时间复杂度为 O(n^2)

你可能感兴趣的:(插入排序 python golang实现)