zoukankan      html  css  js  c++  java
  • 选择排序

    选择排序:

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

    时间复杂度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 }
  • 相关阅读:
    通过另外一个应用程序给多个文本框赋值, 模拟单击事件
    AngularJS
    九章算法
    实现继承
    二分查找
    NET Core依赖注入解读&使用Autofac替代实现
    NET SignalR 与 LayIM2.0
    WebVR
    依赖注入
    如何实现配置与源文件的同步
  • 原文地址:https://www.cnblogs.com/xiaoboxueit/p/13212398.html
Copyright © 2011-2022 走看看