function selectionSort(arr) { var len = arr.length; var minIndex, temp; for (var i = 0; i for (var j = i + 1; j if (arr[j] return arr;}
Python 代码实现
实例
def selectionSort(arr): for i in range(len(arr) - 1): # 记录最小数的索引 minIndex = i for j in range(i + 1, len(arr)): if arr[j] # i 不是最小数时,将 i 和最小数进行交换 if i != minIndex: arr[i], arr[minIndex] = arr[minIndex], arr[i] return arr
Go 代码实现
实例
func selectionSort(arr []int) []int { length := len(arr) for i := 0; i for j := i + 1; j if arr[min] > arr[j] { min = j } } arr[i], arr[min] = arr[min], arr[i] } return arr}
Java 代码实现
实例
public class SelectionSort implements IArraySort { @Override public int[] sort(int[] sourceArray) throws Exception { int[] arr = Arrays.copyOf(sourceArray, sourceArray.length); // 总共要经过 N-1 轮比较 for (int i = 0; i for (int j = i + 1; j if (arr[j] if (i != min) { int tmp = arr[i]; arr[i] = arr[min]; arr[min] = tmp; } } return arr; }}
void swap(int *a,int *b) //交換兩個變數{ int temp = *a; *a = *b; *b = temp;}void selection_sort(int arr[], int len){ int i,j; for (i = 0 ; i for (j = i + 1; j if (arr[j]
C++
实例
template //整數或浮點數皆可使用,若要使用物件(class)時必須設定大於(>)的運算子功能void selection_sort(std::vector& arr) { for (int i = 0; i for (int j = i + 1; j if (arr[j]
C#
实例
static void selection_sort(T[] arr) where T : System.IComparable{//整數或浮點數皆可使用 int i, j, min, len = arr.Length; T temp; for (i = 0; i for (j = i + 1; j if (arr[min].CompareTo(arr[j]) > 0) min = j; temp = arr[min]; arr[min] = arr[i]; arr[i] = temp; }}
Swift
实例
import Foundation/// 选择排序////// - Parameter list: 需要排序的数组func selectionSort(_ list: inout [Int]) -> Void { for j in 0..for i in j..if list[minIndex] > list[i] { minIndex = i } } list.swapAt(j, minIndex) }}