选择排序(Selection Sort)是一种简单的排序算法。它的基本思想是,每次从待排序的元素中选择最小(或最大)的元素,将其放到已排序的序列的末尾,直到所有元素都排好序为止。下面是选择排序的步骤:
PHP
function selectionSort($arr) {
$n = count($arr);
for ($i = 0; $i < $n - 1; $i ) {
$minIndex = $i;
for ($j = $i 1; $j < $n; $j ) {
if ($arr[$j] < $arr[$minIndex]) {
$minIndex = $j;
}
}
$temp = $arr[$i];
$arr[$i] = $arr[$minIndex];
$arr[$minIndex] = $temp;
}
return $arr;
}
// 示例用法
$array = [64, 34, 25, 12, 22, 11, 90];
$sortedArray = selectionSort($array);
print_r($sortedArray);
Java
public class SelectionSort {
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i ) {
int minIndex = i;
for (int j = i 1; j < n; j ) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
// 示例用法
public static void main(String[] args) {
int[] arr = {64, 34, 25, 12, 22, 11, 90};
selectionSort(arr);
for (int i : arr) {
System.out.print(i " ");
}
}
}
Python
def selection_sort(arr):
n = len(arr)
for i in range(n - 1):
min_index = i
for j in range(i 1, n):
if arr[j] < arr[min_index]:
min_index = j
arr[i], arr[min_index] = arr[min_index], arr[i]
return arr
# 示例用法
arr = [64, 34, 25, 12, 22, 11, 90]
sorted_arr = selection_sort(arr)
print(sorted_arr)
Go
package main
import "fmt"
func selectionSort(arr []int) {
n := len(arr)
for i := 0; i < n-1; i {
minIndex := i
for j := i 1; j < n; j {
if arr[j] < arr[minIndex] {
minIndex = j
}
}
arr[i], arr[minIndex] = arr[minIndex], arr[i]
}
}
// 示例用法
func main() {
arr := []int{64, 34, 25, 12, 22, 11, 90}
selectionSort(arr)
fmt.Println(arr)
}
以上是使用PHP、Java、Python和Go语言实现选择排序的示例代码。这些代码通过每次选择最小(或最大)的元素,并将其与当前位置交换,逐渐构建有序序列,从而实现排序。选择排序的时间复杂度为O(n^2)。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved