• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go语言学习笔记之简单的几个排序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.实现一个插入排序

核心思路是抽到的牌与前面的牌进行比较,如果抽到的牌小,那么就互相交换位置.(正序排列)

  1: func insert_sort(a []int) []int {
  2: 	for i:=1;i<len(a);i++ {
  3: 		for j:=i;j>0;j-- {
  4: 			if a[j] < a[j-1]{
  5: 				a[j], a[j-1] = a[j-1], a[j]
  6: 			}
  7: 		}
  8: 	}
  9: 	return a
 10: }
 11: 
 12: func main() {
 13: 	var i []int = []int{8, 3, 2, 9, 4, 6, 10, 0}
 14: 	insert_sort(i)
 15: 	fmt.Println(i)
 16: }

2.实现一个选择排序

核心思路是每一轮扫描都选出最小(最大)的数放在前面(后面)

  1: package main
  2: import (
  3: 	"fmt"
  4: )
  5: func select_sort(a []int) {
  6: 	for i:=0; i < len(a); i++ {
  7: 		for j:=i+1; j<len(a); j++ {
  8: 			if a[i] > a[j]{
  9: 				a[i], a[j] = a[j], a[i]
 10: 			}
 11: 		}
 12: 	}
 13: }
 14: func main() {
 15: 	var i []int = []int{8, 3, 2, 9, 4, 6, 10, 0}
 16: 	select_sort(i)
 17: 	fmt.Println(i)
 18: }

3.实现一个冒泡排序

核心思路是每一轮冒泡都把最大(或者最小)的数放入后面(前面)

  1: func bubble_sort(a []int) {
  2: 	for i:=0; i < len(a); i++ {
  3: 		for j:=0;j<len(a)-1;j++{
  4: 			if a[j] > a[j+1] {
  5: 				a[j], a[j+1] = a[j+1], a[j]
  6: 			}
  7: 		}
  8: 	}
  9: }

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap