数组排序之选择排序

数组排序

给你一个整数数组nums,请你将该数组升序排列。

示例1:

输入:nums = [5,2,3,1]
输出:[1,2,3,5]
示例 2:

输入:nums = [5,1,1,2,0,0]
输出:[0,0,1,1,2,5]

要求:
使用选择排序
在时间复杂度,空间复杂度,是否为原地排序,是否具有稳定性给出答案。

已邀请:

空心菜 - 牛逼你来

Java代码实现:


package com.sort.select;

import java.util.Random;
import java.util.stream.IntStream;

public class Select {
public static void main(String[] args) {
// 选择出最小的值,然后与首位交换,接下来的每个位置一样处理
Random random = new Random();
IntStream limit = random.ints().limit(10);
int[] ints = limit.toArray();
for (int i : ints) {
// System.out.println(i);
}
ints = new int[]{3,1,3};
System.out.println(“=====================================”);
int[] sort = sort(ints);
for (int i : sort) {
System.out.println(i);
}
}
// 原地 不具有稳定性 时间复杂度 O(n^2) 空间复杂度O(1)
public static int[] sort(int[] list){
for (int j = 0; j < list.length; j++){
int minIndex = j;
for (int i = j; i < list.length; i++){
if (list[minIndex] > list[i]){
minIndex = i;
}
}
int valueOfMinIndex = list[j];
list[j] = list[minIndex];
list[minIndex] = valueOfMinIndex;
}
return list;
}

}

要回复问题请先登录注册