package com.sort;
public class SortUtils {
/**
* 选择排序
* @param arr 排序数组
*/
public static void selectionSort(int[] arr){
for (int i = 0; i < arr.length-1 ; i++) {
//设置遍历的起始位置
int minIndex = i;
//遍历找到最小的数组下标
for (int j = i+1; j < arr.length; j++) {
if(arr[minIndex] > arr[j]){
minIndex = j;
}
}
//若找到最小的数,交换数据;否则不交换
if(minIndex != i){
swap(arr, minIndex, i);
}
}
}
/**
* 交换数组中的两个数
* @param arr 交换数组
* @param i 交换数组的下标i
* @param j 交换数组的下标j
*/
public static void swap(int[] arr, int i, int j){
int temp;
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
/**
* 遍历数组
* @param arr 遍历数组
*/
public static void traversal(int[] arr){
System.out.print("arr[");
for (int i = 0; i < arr.length; i++) {
if(i < arr.length-1){
System.out.print(arr[i] + ", ");
}else {
System.out.print(arr[i]);
}
}
System.out.println("]");
}
/**
* 主函数测试
* @param args
*/
public static void main(String[] args) {
int[] arr = {32,1,3,89,4,5,35,34,39,23,4,7};
selectionSort(arr);
traversal(arr);
}
}
测试结果: