golang对数组进行冒泡排序

什么是冒泡排序?

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名“冒泡排序”。

package main

import (
    "fmt"
)

func main() {
    a := [...]int{5,2,6,3,9}
    fmt.Println(a)

    num := len(a)
    for i := 0; i < num; i++ {
        for j := i + 1; j < num; j++ {
            if a[i] < a[j] {
                tmp := a[i]
                a[i] = a[j]
                a[j] = tmp
            }
        }
    }
    fmt.Println(a)
}

---
Mac:array chentiangang$ go run main.go
[5 2 6 3 9]
[9 6 5 3 2]

golang对数组进行冒泡排序

原文地址:https://www.cnblogs.com/Csir/p/9286822.html

时间: 2024-12-17 03:48:05

golang对数组进行冒泡排序的相关文章

基本算法研究1-冒泡排序算法测试

基本算法研究1-冒泡排序算法测试 1.经典冒泡排序法基本原理 先看一个动态图,感觉比较形象: 冒泡排序(Bubble Sort)是一种简单的排序算法.默认是从小到大排序,即把最大的数据排在最后,相当于每次把最大数据像气泡一样浮到水面一样.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换. 基本步骤: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个.        2.对每一对相邻元素作同样的工作,从开始第一对

三重for循环实现对二维数组的按列排序(JavaScript)

由C语言联想到的:三重for循环实现对二维数组的按列排序. 自己写的,水平有限,可能存在错误,忘指正~ function circle() { var a = [ [1, 4, 3, 2], [8, 6, 5, 7], [3, 7, 2, 5], [4, 8, 6, 1] ], t = 0, i, j, k; for(i = 0;i < 4;i++) { for(j = 0;j < 3;j++) { for(k = j + 1;k < 4;k++) { if(a[j][i] > a

PHP 按二维数组的键值排序

/** * 按二维数组的键值排序 * @param unknown $array 二维数组 * @param unknown $key 二维数组的键值 * @param string $order 升序/降序 * @return multitype:unknown 返回排序后的数组 */ public static function arr_sort_in_key($array, $key, $order = "asc") { $arr_nums = $arr = array(); f

数组的高级(排序和查找)

1.冒泡排序:相邻元素两两比较,大的向后方法,第一次完毕后,最大值就出现在了最大索引出.同理,继续,即可得到一个排好序的数组. 2.冒泡排序的规则: 1).两两比较,大的往后方法. 2).第一次比较完毕后,下一次比较的时候就会减少一个元素的比较. 3).第一次比较,有0个元素不比. 第二次比较,有1个元素不比. 第三次比较,有2个元素不比. ...... 4).总共需要比较数组的长度-1次. 3.冒泡排序图解 4.代码实现 package cn; /**  * 数组排序之冒泡排序   */ pu

数组-03. 冒泡法排序

数组-03. 冒泡法排序(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 徐镜春(浙江大学) 将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们.通过一遍扫描,则最后一个元素必定是最大的元素.然后用同样的方法对前N-1个元素进行第二遍扫描.依此类推,最后只需处理两个元素,就完成了对N个数的排序. 本题要求对任意给定的K(<N),输出扫描完第K遍后的中间

编程算法 - 将排序数组按绝对值大小排序 代码(C)

将排序数组按绝对值大小排序 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 排序的数组有可能包含正负, 可以使用折半查找确定中值位置, 然后再使用两个指针, 顺次排序两端. 解决思路是: 1.数组中的元素全为正,返回: 2.数组中的元素全为负,返回: 3.数组中有正数有负数,就用二分法查找,判断中间元素的符号 a)中间元素为正,继续判断中间元素前面一个元素的符号; b)中间元素为负,判断中间元素后一个元素的符号; c)中间元素为零,令其等于结果值返

数组-03. 冒泡法排序(20)

1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int i,j,n,k,a[100],tmp; 5 cin>>n>>k; 6 for(i=0;i<n;++i) 7 cin>>a[i]; 8 for(j=0;j<k;++j) 9 for(i=0;i<n-j-1;++i) //注意-1 10 if(a[i]>a[i+1]){ 11 tmp=a[i]; 12 a[i]=

数组的查找和排序方法

数组的排序方法:reverse() 反转数组元素的顺序.sort() 对数组的元素进行排序. 可以不写,也可以传一个自定义函数用来排序. var = [2, 14, 3, 37, 5, 40];console.log( .sort()); // [14, 2, 3, 37, 40, 5]console.log( .reverse()); // [5, 40, 37, 3, 2, 14] var = [5, 21, 19, 8, 3];function sortFn(a ,b ) {return

&lt;笔试&gt;&lt;面试&gt;编写一个排序函数,实现,既可以排序整形数组,又可以排序字符串。

思路:仿照qsort函数运用函数指针实现排序整形数组.排序字符串的功能. 首先,编写整形数组比较函数和字符串比较函数:其次,仿照qsort函数将首元素地址.元素个数.元素大小.比较函数 传参编写熟悉的冒泡排序函数:最后,举例验证函数正确性. /******************************/ //1.编写冒泡排序,可以排序整形数组,也可以排序字符串. #include<stdio.h> #include<stdlib.h> #include<assert.h&g