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); } }
测试结果: