当前位置: 首页 > news >正文

JAVA之选择排序

选择排序基本思想:从数列第一位开始,遍历之后的所有剩余元素,找出其中最小的一个放到第一位,接下来再从第二位开始,找出数组中第二小的数,以此类推进行排序。

案例:

   public static void main(String[] args) {
        int a [] = {4,10,1,9};
        int c []= chooseSort(a);
        for (int i = 0; i < c.length; i++) {
            System.out.print(c[i]+"  ");
        }
    }
    private static int[] chooseSort(int[] a) {
        int minIndex = 0;
        for (int i=0;i<a.length-1;i++){
            minIndex = i;
            for(int j=i+1;j<a.length;j++){
                if(a[minIndex]>a[j]){
                    minIndex  = j;
                }
            }
            if(minIndex != i){
                int temp = a[i];
                a[i] = a[minIndex];
                a[minIndex] = temp;
            }
        }
        return  a;
    }

流程分析:

数组:int a [] = {4,10,1,9};

---------------------------------------------------------------------------------------------

第一趟排序 : 

排序前数据 :4  10   1   9

数据中1是最小,放到首位,即4和1进行交换

排序结果:1   10  4   9

---------------------------------------------------------------------------------------------

第二趟排序 : 

排序前数据 :1  10   4   9

数据中4是最小,4和10进行交换

排序结果:1   4  10   9

---------------------------------------------------------------------------------------------

第三趟排序 : 

排序前数据 :1   4  10   9

数据中9是最小,10和9进行交换

排序结果:1  4  9  10  

---------------------------------------------------------------------------------------------

总结:只是简单的总结一下选择排序。望路过的大神们多多指导指导。谢谢!!!


相关文章:

  • JAVA之插入排序
  • JAVA之类,构造函数和构造代码块
  • JAVA面试题之冒泡排序,插入排序及选择排序
  • Linux安装JDK步骤
  • Linux之ssh,scp命令的使用
  • Linux之ssh免密登录
  • Hadoop-2.8.0安装教程---单机/伪分布式配置
  • Java之序列化与反序列化
  • Hadoop之常用shell命令整理
  • Itext笔记之pdf页眉页脚
  • JAVA操作HDFS案例
  • zookeeper-3.4.10安装教程---分布式配置
  • storm-1.1.0安装教程---分布式配置
  • Hadoop之HDFS分布式文件系统读写流程详解
  • Zookeeper之常用API详解
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 【知识碎片】第三方登录弹窗效果
  • 2018一半小结一波
  • Laravel Mix运行时关于es2015报错解决方案
  • Material Design
  • WebSocket使用
  • 分布式任务队列Celery
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 前嗅ForeSpider教程:创建模板
  • 深入浏览器事件循环的本质
  • 译自由幺半群
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • #14vue3生成表单并跳转到外部地址的方式
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (接口自动化)Python3操作MySQL数据库
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (转)3D模板阴影原理
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .net 流——流的类型体系简单介绍
  • /etc/shadow字段详解
  • /使用匿名内部类来复写Handler当中的handlerMessage()方法
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)
  • [ 云计算 | AWS ] 对比分析:Amazon SNS 与 SQS 消息服务的异同与选择
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [20181219]script使用小技巧.txt
  • [ABP实战开源项目]---ABP实时服务-通知系统.发布模式
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [Android]Android开发入门之HelloWorld
  • [ARM]ldr 和 adr 伪指令的区别
  • [CareerCup] 2.1 Remove Duplicates from Unsorted List 移除无序链表中的重复项