原理:在一般选择排序的基础上,首先对数组元素进行比较,但不换位。通过内循环找到数组元素中的最小值,再
对最小值和内循环的首元素进行换位
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; } }对内循环中的首个元素和极小值进行换位。
