python go 插入排序

13 篇文章 0 订阅
10 篇文章 0 订阅

插入排序

1. 插入排序

2. code

python

# -*- coding: utf-8 -*-

class InsertionSort:

    def __init__(self, c_list):
        assert isinstance(aim_list, list)
        self.c_list = c_list
        self.sorted()

    def sorted(self):
        for i in range(1, len(self.c_list)):
            j_std = self.c_list[i]
            j = i - 1
            while j > 0 and self.c_list[j] > j_std:
                self.c_list[j + 1] = self.c_list[j]
                j-=1
            self.c_list[j+1] = j_std
        print("insertion-sort: ", self.c_list)


if __name__ == "__main__":
    aim_list = [8,1,5,3,7,3,2,9]
    insertion_sort = InsertionSort(aim_list)
    
    # 输出结果:
    # insertion-sort:  [8, 1, 2, 3, 3, 5, 7, 9]

go

package main

import (
	"fmt"
)

func main() {
	fmt.Println("Let`s start going...")
	slice := []int{3, 7, 8, 1, 4, 2, 8, 0, 4}
	fmt.Println("Base slice: ", slice)
	newSlice := insertionSort(slice)
	fmt.Println("Sort slice: ", newSlice)
}

// insertionSort 接受一个切片并对其排序
// 返回一个排序之后的切片
func insertionSort(slice []int) (slice1 []int) {
	for i := 1; len(slice) > i; i++ {
		key := slice[i]
		j := i - 1
		for j >= 0 && slice[j] > key {
			slice[j+1] = slice[j]
			j--
		}
		slice[j+1] = key
	}
	return slice
}


// 输出结果:
// Base slice:  [3 7 8 1 4 2 8 0 4]
// Sort slice:  [0 1 2 3 4 4 7 8 8]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值