zoukankan      html  css  js  c++  java
  • Go语言学习笔记之简单的几个排序

    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: }
  • 相关阅读:
    Python变量常量命名
    代码格式
    Python 输入输出
    数据源
    LaTeX Test
    软件工程
    eclipse-智能提示设置
    java代码里设置指定颜色常值
    命令行中Vim直接打开某行
    Vim里快速替换命令
  • 原文地址:https://www.cnblogs.com/haoqirui/p/10123629.html
Copyright © 2011-2022 走看看