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]
    
        }
    
    }
  • 相关阅读:
    谈谈ios内存管理--持续更新
    IOS整体框架介绍
    OC-精简解读 block
    解读自定义UICollectionViewLayout--感动了我自己
    内存管理-深浅拷贝之 copy和mutableCopy
    OC-socket使用介绍
    ios 调用系统打电话和发消息的功能
    Swift-扩展
    Java 之switch语句
    Java 键盘输入数据
  • 原文地址:https://www.cnblogs.com/javaisbest/p/12965968.html
Copyright © 2011-2022 走看看