原理:在一般选择排序的基础上,首先对数组元素进行比较,但不换位。通过内循环找到数组元素中的最小值,再
对最小值和内循环的首元素进行换位
package com.monfolld;
public class selectSort {
public static void main(String[] args) {
int[] arr={11,34,45,22,31,65};
selectSort(arr);
for(int x=0;x<arr.length;x++){
System.out.println(arr[x]+",");
}
}
public static void selectSort(int[] arr){
for(int x=0;x<arr.length-1;x++)
{
int num=arr[x]; //先定义一个变量放数组的首个元素,便于寻找最小值
int index=x; //定义一个变量方便查找最小值的角标
for(int y=x+1;y<arr.length;y++)
{
if(num>arr[y]){ //对数组元素比较,将小的值放入num中
num=arr[y];
index=y; //获取最小值的角标
}
}
if (index!=x){
swap(arr,x,index); //对最小值和首元素进行换位
}
}
}
public static void swap(int[] arr,int a,int b){
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
}
对内循环中的首个元素和极小值进行换位。