zoukankan      html  css  js  c++  java
  • 排序算法——冒泡排序

    1、算法介绍

    (1)比较相邻的两个元素,前面元素比后面元素大,则交换两个元素;两个元素相等不交换(稳定);

    (2)一趟比较后得到最大元素,对前面未排好序的序列重复步骤(1)

    (3)循环排序结束或排序过程中无交换则排序完成

    2、代码实现

    2.1、golang

    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	slice := []int{5, 3, 12, 54, 23, 12, 6, 9, 19}
    	SortBubble(slice)
    	fmt.Println(slice)
    }
    
    //冒泡排序
    func SortBubble(slice []int) {
    	n := len(slice)
    	isEnd := true //无交换,排序结束
    	for i := 0; i < n-1; i++ {
    		isEnd = true
    		for j := 0; j < n-i-1; j++ {
    			if slice[j] > slice[j+1] {
    				slice[j], slice[j+1] = slice[j+1], slice[j]
    				isEnd = false
    			}
    		}
    		if isEnd {
    			break
    		}
    	}
    }
    

    2.2、python3

    # 冒泡排序
    def sort_bubble(arr):
        n = len(arr)
        isEnd = True
        for i in range(n-1):
            isEnd = True
            for j in range(n-i-1):
                if arr[j] > arr[j+1]:
                    arr[j], arr[j+1] = arr[j+1], arr[j]
                    isEnd = False
            if isEnd:
                break
    
    
    if __name__ == '__main__':
        arr = [5, 3, 12, 54, 23, 12, 6, 9, 19]
        sort_bubble(arr)
        print(arr)
    

      

    笃志:“博学而笃志,切问而近思,仁在其中矣。”
    弘毅:“士不可以不弘毅,任重而道远。”
    止于至善:“大学之道,在明明德,在亲民,在止于至善。”
    关注:笃志弘毅,止于至善
  • 相关阅读:
    而字歌
    排列组合的学习,基础入门,选修2-3
    金句集(目前9句)
    简析几何叉乘与安培力的内在逻辑
    浅谈参变分离的妙用
    日语
    Tarjan-SCC-NOIP2015message
    WebAPI身份验证
    简单记录在Visual Studio 2013中创建ASP.NET Web API 2
    从两个平方算法到分治算法-java
  • 原文地址:https://www.cnblogs.com/dzhy/p/10938296.html
Copyright © 2011-2022 走看看