多语言实现选择排序算法

2019-01-17  本文已影响0人  过往云技

工作原理:

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

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
}
上一篇 下一篇

猜你喜欢

热点阅读