• 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))
    }
    
    你得先看重你自己,否则别人就会当你一钱不值。
  • 相关阅读:
    课二 计算机硬件组成余下
    课一 计算机硬件组成
    电梯演讲视频
    团队成员个人介绍
    day-65Django
    day-64Django
    day-63Django
    day-62Django
    day-61Django
    day-60Django
  • 原文地址:https://www.cnblogs.com/ajiffuu/p/14594614.html
Copyright © 2020-2023  润新知