程序猿小白进阶之路,一天学习一个算法:选择排序

程序猿小白进阶之路,一天学习一个算法:选择排序

首页休闲益智程序员进阶之路更新时间:2024-06-03

选择排序(Selection Sort)是一种简单的排序算法。它的基本思想是,每次从待排序的元素中选择最小(或最大)的元素,将其放到已排序的序列的末尾,直到所有元素都排好序为止。下面是选择排序的步骤:

  1. 从待排序序列中找到最小(或最大)的元素,记录其位置。
  2. 将该最小(或最大)元素与待排序序列的第一个元素交换位置,使最小(或最大)元素排在已排序序列的末尾。
  3. 在剩余的待排序序列中,重复步骤1和步骤2,直到所有元素都排好序。

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