选择排序:
找到数组中的最小的那个元素,然后将它和数组的第一个元素交换位置(如果第一个就是最小的,那么就和它自己交换位置),然后在剩下的元素中找最小的元素,并且和数组的第二个元素交换位置,依次类推,达到排序的目的。
时间复杂度O(n) = n^2 因为嵌套循环的原因
代码实现如下:
1 package com.pangzi.stucture; 2 3 import java.util.Arrays; 4 5 public class SelectSort { 6 7 public static void main(String[] args) { 8 int[] arr = {101,34,119,1}; 9 System.out.println("排序后"); 10 selectSort(arr); 11 System.out.println(Arrays.toString(arr)); 12 } 13 14 //选择排序 15 public static void selectSort(int[] arr){ 16 17 for(int i = 0;i<arr.length - 1;i++){//总共需要对比length-1轮 18 19 20 int minIndex = i;//假定最小值索引为0 21 int min = arr[i];//假定最小值为第一个元素 22 for(int j = i+1;j<arr.length;j++){ 23 if(min > arr[j]){ //说明假定的最小值并不是最小 24 min = arr[j];//那么将比假定的最小值还小的j赋值给min 25 minIndex = j;//将比假定最小值还小的j赋值给最小值索引 26 27 } 28 } 29 30 //将最小值和arr[0]交换 31 arr[minIndex] = arr[i];//将数组的第一个元素的值赋值给arr[minIndex] 32 arr[i] = min;//将循环得到的最小值1赋值给数组的第一个元素 33 } 34 } 35 36 }