zoukankan      html  css  js  c++  java
  • Go算法学习-冒泡排序

    冒泡排序

    数据结构:数组

    冒泡排序也是数组排序常用的排序算法,个人理解:循环从数组中比较两个值的大小,将大的值往一端移动,选出最大值,接着冒泡第二大值。循环直到所有数据顺序OK

    时间复杂度:O(n2)

    代码实现如下

    package main
    
    import (
    	"fmt"
    )
    
    /**
     * @Author KyrieWang
     * @Description //TODO bubblesort 循环一次,把最大或者最小的数交换到最后面
     * @Date 1:26 下午 2021/3/29
     * @Param
     * @return
     */
    
    // TODO 冒泡返回最大值
    func BubbleMaxSort(input []int) int {
    	for i := 1; i < len(input); i++ {
    		if input[i] < input[i-1] {
    			input[i-1], input[i] = input[i], input[i-1] // 交换位置
    		}
    	}
    	return input[len(input)-1]
    }
    
    // TODO 冒泡排序算法: 每次循环把第一个数字和后面的数进行对比,把大的数据往前排 排在第一个
    func BubbleSort(input []int) []int {
    	for i := 0; i < len(input); i++ {
    		for j := i + 1; j < len(input); j++ { // 精髓在把最大的冒泡上来之后,再选第二个冒泡大的
    			if input[i] < input[j] {
    				input[i], input[j] = input[j], input[i]
    			}
    		}
    	}
    	return input
    }
    func main() {
    	inputData := []int{61, 12, 123, 41, 12, 23, 51, 67, 65}
    	// 冒泡排序求出最大值
    	fmt.Println(BubbleMaxSort(inputData))
    
    	// 冒泡法排序
    	fmt.Println(BubbleSort(inputData))
    }
    
    你得先看重你自己,否则别人就会当你一钱不值。
  • 相关阅读:
    jQuery教程1,隐藏p标签
    Google 和 Microsoft 对 jQuery 的支持都很好。
    在编辑器中自动换行
    调用存储过程的一些方法
    jQuery教程2隐藏p标签内容按钮
    文件的复制,移动,创建
    网站中access数据库的备份和恢复
    修改文件名称
    生成静态网页,函数,引用过程
    网页中打印文本文件
  • 原文地址:https://www.cnblogs.com/ajiffuu/p/14594614.html
Copyright © 2011-2022 走看看