插入排序 python golang实现

NothingLeft了 · · 304 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

插入排序

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


插入排序示意图.png

C++实现:

template<typename T>
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)


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:NothingLeft了

查看原文:插入排序 python golang实现

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

304 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传