目录
前言
随着计算机的不断发展,算法这门技术也越来越重要,很多人都开启了算法学习,本文就介绍了选择排序。我也是个初学者,在解决问题之后,觉得还是把这些坑都写清楚,方便其他和我一样的初学者。
一、选择排序是什么?
①该算法的时间复杂度为O(n²)
②该算法可将无序数组转换为有序数组
二、函数
1.Java版
代码如下:
public static int[] selectionSort(int[] arr){
//最小值,初始化时为0下标
int temp;
//循环
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
//交换
if(arr[i]>arr[j]){
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
return arr;
}
测试样例:
//测试
public static void main(String[] args) {
int[] arr=selectionSort(new int[]{5, 3, 6, 2, 10});
for (int j : arr) {
System.out.print(j + " ");
}
}
结果截图:
2.Python版
代码如下:
# 获得数组最小值的下标
def findSmallest(arr):
# 最小值,初始化时为0下标
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, 6, 2, 10]))
结果截图:
总结
以上就是今天要讲的内容,本文仅仅简单介绍了选择排序的使用。