zoukankan      html  css  js  c++  java
  • 15、排序算法-选择排序

    来源:https://www.bilibili.com/video/BV1B4411H76f?p=39

    一、思路

    选择排序:选择合适的数据放到合适的位置。

    如果想从小到大排列,那么从所有的n个数据中选择最小的一个与下标为0的元素交换;之后从剩下的n-1个数据中,选最小的与下标为1的元素交换,这样依次迭代下去循环n-1次。

    例如:[101,34,119,1]

    第一趟:4个数据中,1最小,和101交换,[1,34,119,101]

    第二趟:后3个数据,34最小,不用交换,[1,34,119,101]

    第三趟:后2个数据,101最小,与119交换,[1,34,101,119]

    二、实现

     1 //选择排序
     2 public class SelectSort {
     3     public static void main(String[] args) {
     4         int[] arr = {101,34,119,1};
     5         System.out.println(Arrays.toString(arr));
     6 
     7         selectSort(arr);
     8         System.out.println(Arrays.toString(arr));
     9 
    10     }
    11 
    12     public static void selectSort(int[] arr){
    13         for (int i = 0; i < arr.length - 1; i++) {
    14             int minIndex = i;
    15             int min = arr[i];
    16             for (int j = i + 1; j < arr.length ; j++) {
    17                 if(min > arr[j]){
    18                     min = arr[j];
    19                     minIndex = j;
    20                 }
    21             }
    22             if(minIndex != i){
    23                 arr[minIndex] = arr[i];
    24                 arr[i] = min;
    25             }
    26         }
    27     }
    28 }

    结果

    [101, 34, 119, 1]
    [1, 34, 101, 119]
  • 相关阅读:
    遇到的函数知识
    网络编程
    python中的并发编程
    Django contenttypes组件
    同源策略定义及跨域解决方案
    Django Rest framework
    RESTful API
    python 给对象添加方法
    python 装饰器(复杂一点的)
    android动态替换Fragment向下传递数据
  • 原文地址:https://www.cnblogs.com/zhao-xin/p/13159479.html
Copyright © 2011-2022 走看看