选择排序

选择排序:

找到数组中的最小的那个元素,然后将它和数组的第一个元素交换位置(如果第一个就是最小的,那么就和它自己交换位置),然后在剩下的元素中找最小的元素,并且和数组的第二个元素交换位置,依次类推,达到排序的目的。

时间复杂度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 }
原文地址:https://www.cnblogs.com/xiaoboxueit/p/13212398.html