ZBLOG

golang 插入排序

插入排序是一种简单的排序算法,它的思想是将待排序序列分成已排序和未排序两部分,每次从未排序部分中取出一个元素,在已排序部分中找到合适的位置插入该元素,直到所有元素都被插入完毕。

以下是 golang 实现插入排序的示例代码:

func InsertionSort(arr []int) {
    n := len(arr)
    for i := 1; i < n; i++ {
        // 将 arr[i] 插入到有序数列 arr[0:i-1] 中
        j, temp := i, arr[i]
        for ; j > 0 && temp < arr[j-1]; j-- {
            arr[j] = arr[j-1]
        }
        arr[j] = temp
    }
}

在该代码中,我们使用了一个指针变量 j 来遍历已排好序的部分,并且将要插入的元素存储在临时变量 temp 中。

对于每个要插入的元素 arr[i],我们都会将其与有序数列中最后一个元素开始比较。如果当前值小于有序数列中某个值,则将这个值向右移动一位。重复上述过程直至找到要插入位置,并在该位置处将 temp 插入。

时间复杂度:\(O(n^2)\)

空间复杂度:\(O(1)\)

稳定性:稳定

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=6497

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?