选择排序

工作原理:

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。

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
}

黄铭博客
请先登录后发表评论
  • latest comments
  • 总共0条评论