『软件测试』使用编程语言进行冒泡排序

187 阅读2分钟

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

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

它重复的访问需要排序的元素列,并依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。以下是图片详解: 冒泡排序 冒泡排序2

Python 代码

存在列表:[5, 0, 1, 6, 3, 2, 9, 8, 7, 10, 4, 11]

# 冒泡排序
list1 = [5, 0, 1, 6, 3, 2, 9, 8, 7, 10, 4, 11]


def bubble_sort(sort):
    # 遍历列表
    for l in range(length := len(sort)):
        # 遍历比较前后两个元素
        for s in range(length):
        	# 若排序错误,则进行交换
            if s + 1 < length and sort[s] > sort[s + 1]:
                sort[s], sort[s + 1] = sort[s + 1], sort[s]
    return sort


print(bubble_sort(list1))

返回结果: py--结果

TypeScript 代码

存在列表:[5, 0, 1, 6, 3, 2, 9, 8, 7, 10, 4, 11]

// 冒泡排序
let list1 = [5, 0, 1, 6, 3, 2, 9, 8, 7, 10, 4, 11]

function bubbleSort(sort: number[]) {
    let length = sort.length
    // 遍历列表
    for (let num: number = 0; num < length; num++) {
        // 遍历比较前后两个元素
        for (let value: number = 0; value < length; value++) {
            // 若排序错误,则进行交换
            if (value + 1 < length && sort[value] > sort[value + 1]) {
                let val = sort[value]
                sort[value] = sort[value + 1]
                sort[value + 1] = val
            }
        }
    }
    return sort
}

console.log(bubbleSort(list1))

返回结果: ts--结果

GoLang 代码

存在列表:[5, 0, 1, 6, 3, 2, 9, 8, 7, 10, 4, 11]

package main
import "fmt"

func main() {
   fmt.Println(Array())
}

func Array() []int {
   // 存在列表
   list := [] int{5, 0, 1, 6, 3, 2, 9, 8, 7, 10, 4, 11}

   // 遍历列表
   for i := 0; i < len(list); i++ {
      // 遍历比较前后两个元素
      for j := 0; j < len(list); j++ {
         // 若排序错误,则进行交换
         if j + 1 < len(list) && list[j] > list[j+1] {
            k := list[j]
            list[j] = list[j+1]
            list[j+1] = k
         }
      }
   }
   return list
}

返回结果: go--结果

Java 代码

存在列表:[5, 0, 1, 6, 3, 2, 9, 8, 7, 10, 4, 11]

package main;
import java.util.Arrays;

public class test {
    public static void main(String[] args) throws Exception {
        // 数组转换
        System.out.println(Arrays.toString(Array()));
    }

    public static int[] Array() throws Exception {
        // 存在数组
        int[] list = {5, 0, 1, 6, 3, 2, 9, 8, 7, 10, 4, 11};

        // 遍历列表
        for (int i = 0; i < list.length; i++) {
            // 遍历比较前后两个元素
            for (int j = 0; j < list.length; j++) {
                // 若排序错误,则进行交换
                if (j+1 < list.length && list[j] > list[j+1]) {
                    int k = list[j];
                    list[j] = list[j+1];
                    list[j+1] = k;
                }
            }
        }
        return list;
    }
}

返回结果:

java--结果