算法学习之选择排序
Posted xunxian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法学习之选择排序相关的知识,希望对你有一定的参考价值。
-
从一个数组中每次选出一个最大或者最小的值,然后把它放到一个新的数组中,新生成的数组就是一个按顺序的数组。
-
Python代码实现:
#找最小值的函数
def findSmallest(arr):
smallest = arr[0]
smallest_index = 0
for i in range(1,len(arr)):
if arr[i] < smallest:
smallest = arr[i]
smallest_index = i
return smallest_index
#排序方法
def selectionSort(arr):
newArr = []
for i in range(len(arr)):
smallest = findSmallest(arr)
newArr.append(arr.pop(smallest))
return newArr
#使用
print selectionSort([5,3,4,1,2])
- Java代码实现:
public class SelectSort {
//使用
public static void main(String[] args) {
int[] arr = new int[] { 5,3,4,1,2};
selectSort(arr);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
//排序算法
public static void selectSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (i != minIndex) {
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
}
- javascript实现:
//排序算法
function selectionSort(arr) {
const length = arr.length;
for (let i = 0; i < length - 1; i++) {
let minIndex = i;
for (let j = i + 1 ; j < length ; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex !== i) {
const temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}
}
以上是关于算法学习之选择排序的主要内容,如果未能解决你的问题,请参考以下文章