选择排序算法各种语言实现

导读选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。

算法步骤

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

重复第二步,直到所有元素均排序完毕。

动图演示

什么是选择排序?

代码实现

JavaScript 代码实现

实例

function selectionSort(arr) {

var len = arr.length;

var minIndex, temp;

for (var i = 0; i

Python 代码实现

实例

def selectionSort(arr):

for i in range(len(arr) - 1):

# 记录最小数的索引

minIndex = i

for j in range(i + 1, len(arr)):

if arr[j]

Go 代码实现

实例

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

}

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

PHP 代码实现

实例

function selectionSort($arr)

{

$len = count($arr);

for ($i = 0; $i

C 语言

实例

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

C++

实例

template //整數或浮點數皆可使用,若要使用物件(class)時必須設定大於(>)的運算子功能

void selection_sort(std::vector& arr) {

for (int i = 0; i

C#

实例

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;

}

}

Swift

实例

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

回到顶部