工作原理:
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
PHP 实现
function selectSort(array $array):array
{
$count = count($array);
if($count < 2){
return $array;
}
for($i=0; $i < $count - 1; $i++){
$min = $i;
for($j = $i + 1; $j < $count; $j++){
if($array[$min] > $array[$j]){
$min = $j;
}
}
$temp = $array[$min];
$array[$min] = $array[$i];
$array[$i] = $temp;
}
var_export($array);
return $array;
}
selectSort([12, 34, 3, 2, 54, 3, 1, 56, 342]);
JavaScript 实现
function selectSort(array){
var len = array.length;
var min, temp;
if(len < 2){
return array
}
for(var i = 0; i < len - 1; i++){
min = i;
for(var j = 1 + i; j < len; j++ ){
if(array[min] > array[j]){
min = j
}
}
temp = array[min]
array[min] = array[i]
array[i] = temp
}
return array
}
selectSort([12, 34, 2, 1, 45, 23, 0, 1, 34])
Python 实现
def select_sort(array):
count = len(array)
for i in range(count - 1):
min_i = i
j = i + 1
while j < count:
if array[min_i] > array[j]:
min_i = j
j = j + 1
array[min_i], array[i] = array[i], array[min_i]
return array
a = select_sort([12, 45, 2, 23, 1, 0, 45, 233])
print(a)
Go 实现
package main
import "fmt"
func main(){
var array = []int{23, 3, 34, 1, 45, 2, 56, 1, 78}
a := selectSort(array)
fmt.Println(&a)
}
func selectSort(array[]int)[]int{
count := len(array)
for i := 0; i < count - 1; i++{
min_i := i
for j := i + 1; j < count; j++ {f
if array[min_i] > array[j] {
min_i = j
}
}
if min_i != i {
array[min_i], array[i] = array[i], array[min_i]
}
}
return array
}