选择排序算法各种语言实现
导读 | 选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。 |
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
重复第二步,直到所有元素均排序完毕。
实例
function selectionSort(arr) {var len = arr.length;
var minIndex, temp;
for (var i = 0; i
实例
def selectionSort(arr):for i in range(len(arr) - 1):
# 记录最小数的索引
minIndex = i
for j in range(i + 1, len(arr)):
if arr[j]
实例
func selectionSort(arr []int) []int {length := len(arr)
for i := 0; i arr[j] {
min = j
}
}
arr[i], arr[min] = arr[min], arr[i]
}
return arr
}
实例
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
实例
function selectionSort($arr){
$len = count($arr);
for ($i = 0; $i
实例
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
实例
template //整數或浮點數皆可使用,若要使用物件(class)時必須設定大於(>)的運算子功能void selection_sort(std::vector& arr) {
for (int i = 0; i
实例
static void selection_sort(T[] arr) where T : System.IComparable{//整數或浮點數皆可使用int i, j, min, len = arr.Length;
T temp;
for (i = 0; i 0)
min = j;
temp = arr[min];
arr[min] = arr[i];
arr[i] = temp;
}
}
实例
import Foundation/// 选择排序 /// /// - Parameter list: 需要排序的数组 func selectionSort(_ list: inout [Int]) -> Void { for j in 0..<list.count - 1 { var minIndex = j
for i in j..<list.count { if list[minIndex] > list[i] { minIndex = i
} } list.swapAt(j, minIndex) } }
以上是 选择排序算法各种语言实现 的全部内容, 来源链接: utcz.com/a/120155.html