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

    选择排序(Selection Sort)

    • 概念

       选择排序就是从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。它是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。好处就是不占用额外的内存空间了吧。

                

    • 步骤

       首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

        再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。

        重复第二步,直到所有元素均排序完毕。

    • Java代码实现
    public class SelectionSort {
    
        public void selectionSort(Integer arr[]){
            //先判断数组元素是否只有一个以下,若只有一个就不用排序
            if(arr.length<=1) return;
            for(int i=0;i<arr.length-1;i++)
                for(int j=i;j<arr.length-1;j++) {
                    if(arr[i]>arr[j+1]) {
                        int temp = arr[i];
                        arr[i] = arr[j+1];
                        arr[j+1]=temp;
                    }
                }
        }
        public static void main(String[] args) {
            Integer arr[] = {8,6,3,5,2,1};
            System.out.println("排序前的数组:"+Arrays.toString(arr));
            SelectionSort selectionSort = new SelectionSort();
            selectionSort.selectionSort(arr);
            System.out.println("排序后的数组:"+Arrays.toString(arr));
            //最终输出结果:
            //排序前的数组:[8, 6, 3, 5, 2, 1]
            //排序后的数组:[1, 2, 3, 5, 6, 8]
    
        }
    
    }
  • 相关阅读:
    Wireshark协议分析1
    网络的怎么连接的-浏览器
    navicat 快捷键
    jekins—持续集成
    【Back to Basics】查询区间 $a[0, r)$ 上大于等于 $k$ 的数有多少个
    【面试向】从洗牌算法说起
    【经典问题】maximum subset sum of vectors
    Codeforces 1209D Cow and Snacks
    Maximum XOR Sum 系列问题
    【C++ 补习】Copy Control
  • 原文地址:https://www.cnblogs.com/javaisbest/p/12965968.html
Copyright © 2011-2022 走看看