直接选择排序
基本原理:将待排序的元素分为已排序和未排序两组,依次将未排序的元素值中最小的元素放入已排序的数组中。
时间效率:
O(n2)
空间效率:
O(1)
算法稳定性:不稳定
import java.util.Scanner;
//直接选择排序(从小到大)
public class Main{
private void selectSort(int nums[]){
int length = nums.length;//获取数组长度
for(int i = 0;i<length;i++){
int minIndex = i;//存储最小值索引
for(int j = i+1;j<length;j++){
if(nums[minIndex]>nums[j]){
minIndex = j;
}
}
if(minIndex!=i){
int temp = nums[minIndex];
nums[minIndex]=nums[i];
nums[i] = temp;
}
}
System.out.println(java.util.Arrays.toString(nums));//输出直接排序数组
}
//测试函数
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);//创建键盘扫描对象
int nums[] = new int[10];
for(int i = 0;i<10;i++){
nums[i] = scanner.nextInt();
}
scanner.close();//关闭键盘扫描对象
Main test = new Main();
test.selectSort(nums);//直接选择排序
}
}