算法-排序算法
分别使用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