算法-排序算法

分别使用Go、Rust、Java学习实现各种算法

冒泡排序

Go

package main

import "fmt"

func bubbleSort(arr []int) {
    n := len(arr)
    for i := 0; i < n-1; i++ {
        for j := 0; j < n-i-1; j++ {
            if arr[j] > arr[j+1] {
                arr[j], arr[j+1] = arr[j+1], arr[j]
            }
        }
    }
}

func main() {
    arr := []int{64, 34, 25, 12, 22, 11, 90}
    fmt.Println("Before sorting:", arr) // Before sorting: [64 34 25 12 22 11 90]
    bubbleSort(arr)
    fmt.Println("After sorting:", arr) // After sorting: [11 12 22 25 34 64 90]
}

Rust

fn bubble_sort(arr: &mut [i32]) {
    let n = arr.len();
    for i in 0..n-1 {
        for j in 0..n-i-1 {
            if arr[j] > arr[j+1] {
                arr.swap(j, j+1);
            }
        }
    }
}

fn main() {
    let mut arr = [64, 34, 25, 12, 22, 11, 90];
    println!("Before sorting: {:?}", arr); // Before sorting: [64, 34, 25, 12, 22, 11, 90]
    bubble_sort(&mut arr);
    println!("After sorting: {:?}", arr); // After sorting: [11, 12, 22, 25, 34, 64, 90]
}

Java

public class demo {
    public static void bubbleSort(int[] arr) {
        int n = arr.length;
        for (int i = 0; i < n-1; i++) {
            for (int j = 0; j < n-i-1; j++) {
                if (arr[j] > arr[j+1]) {
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }

    public static void main(String[] args) {
        int[] arr = {64, 34, 25, 12, 22, 11, 90};
        System.out.print("Before sorting: ");
        for (int num : arr) {
            System.out.print(num + " ");
        }
        System.out.println();

        bubbleSort(arr);

        System.out.print("After sorting: ");
        for (int num : arr) {
            System.out.print(num + " ");
        }
        System.out.println();
    }
}

// Before sorting: 64 34 25 12 22 11 90
// After sorting: 11 12 22 25 34 64 90

选择排序

TODO

posted @ 2023-10-01 00:41  GJH-  阅读(38)  评论(0编辑  收藏  举报