算法练习-排序-选择排序
package suanfadaohang1;
import java.util.*;
public class sf01 {
//选择排序
//假设第一位arr[0]是最小的数,再和arr[0]后面的所有数比较,如果小于arr[0]就和它交换位置,然后再到arr[1]和arr[1]后面的所有数字做比较
//每次将最小的放在前面
public static void selectionSort(int[] arr) {
int n=arr.length;
//遍历数组
for(int i=0;i<n-1;i++) {
int minIndex=i;
for(int j=i+1;j<n;j++) {
if(arr[j]<arr[minIndex]) {
minIndex=j;
}
}
if(i!=minIndex)//说明在数组后面找到了比arr[i]更小的数字,需要交换位置,把小的排到前面
{
int temp=arr[i];
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
}
}
//打印数组
public static void printArray(int[] arr) {
for(int i:arr) {
System.out.print(i+" ");
}
System.out.println();
}
public static void main(String[] args) {
int[] arr= {64,25,12,22,11};
System.out.println("排序前的数组:");
printArray(arr);
selectionSort(arr);
System.out.println("排序后的数组:");
printArray(arr);
}
}