1. 选择排序

   选择排序是一种直观的排序算法,它的工作原理是:首先在未排序的序列中找到最小的元素,将它放在序列的起始位置,然后在剩下的未排序序列中来依次寻找最小元素,将它放在排好序的序列后面。一直到所有的元素排序完成,循环结束。

代码实现:

package org.westos.selectsort;import java.util.Arrays;public class SelectSort2 {public static void main(String[] args) {int[] arr = new int[]{-1,-9,9,7,6,36,25,4,1,0};System.out.println("未排序数组:"+Arrays.toString(arr));selectSort(arr);System.out.println("选择排序后:"+Arrays.toString(arr));}private static void selectSort(int[] arr) {//外层循环控制一共比较几轮,最后一个元素在和它的上一个元素比较后排序就完成,//所以共比较arr.length-1轮for (int i = 0; i < arr.length - 1; i++) {//内层循环控制每轮比较的次数for (int j = i+1; j < arr.length; j++) {//如果选择的那个数大于后面和它进行比较的元素,将后面的元素放在未排序的序列的起始位置,// 直到这轮循环进行完,最小的元素就会在起始位置if (arr[i] > arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}}
}

执行结果:

数据结构和算法——八种常用的排序算法----选择排序相关推荐

  1. 查找算法-4种常用的查找算法

    文章目录 一.查找算法是什么? 查找算法简介 二.查找算法介绍及实现 1.顺序查找 算法描述 代码实现: 2.二分查找/折半查找 算法描述 代码实现: 3.插值查找 算法描述 代码实现: 4.斐波那契 ...

  2. 八种常用的排序算法(转)

    下面要讲到的8种排序都属于内部排序,既在内存中完成,主要从理论原理方面来分析的.    插入排序 ①直接插入排序 例:六个数12 15 9 20  6 31 24 用直接插入排序,如下图: 思路: 第 ...

  3. 【排序】八种常用排序

    1.插入排序 2.希尔排序 3.选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序 8.计数排序 --------------- 插入排序 这个排序原来很简单,如图演示: 我们先把 9 看 ...

  4. 数据结构—排序算法总结(插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、合并排序、计数排序)

    *排序 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作. 稳定性 在待排序的数组中,如果出现多个相同的关键字,例如:98751555512,中出现重复的数字,在 ...

  5. C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】

    目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...

  6. 总结几种常用的安全算法

    本文简单总结几种常用的安全算法 摘要算法 对称加密算法 非对称加密算法 数字签名 数字证书 web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 数字摘要 实现 将任意长 ...

  7. 算法总结---最常用的五大算法(算法题思路)

    算法总结---最常用的五大算法(算法题思路) 一.总结 一句话总结: [明确所求:dijkstra是求点到点的距离,辅助数组就是源点到目标点的数组] [最简实例分析:比如思考dijkstra:假设先只 ...

  8. 常见排序算法详解(插入排序、希尔排序、选择排序、冒泡排序、快速排序)

    1.1 插入排序 步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取下一个元素tem,从已排序的元素序列从后往前扫描 3.如果该元素大于tem,则将该元素移到下一位 4.重复步骤3,直到找 ...

  9. 排序算法(分类,时间复杂度)(快速排序,插入排序,希尔排序,选择排序,冒泡排序)

    1.排序算法 1.排序的分类 分为内部排序和外部排序,其中内部排序分为插入排序.选择排序.交换排序.归并排序和基数排序.插入排序包括直接插入排序和希尔排序:选择排序包括简单选择排序和堆排序:交换排序包 ...

  10. C语言实现选择排序——简单选择排序算法

    C语言实现简单选择排序 文章目录 C语言实现简单选择排序 简单选择排序算法 1.交换操作 2.简单选择排序算法实现 项目完整代码 运行效果图 简单选择排序算法 1.交换操作 //交换实现 void s ...

最新文章

  1. Fastadmin管理Mysql_FastAdmin-CMS模版制作(6)-正式部署
  2. 异步使用委托delegate --- BeginInvoke和EndInvoke方法
  3. JavaScript对象的几种创建方式?
  4. python excelwriter保存路径_python管理文件神器 os.walk
  5. 【Apscheduler】不生效也不报错,提示No handlers could be found for logger “apscheduler.executors.default”
  6. header python 环境信息_【关于header信息的构造】Python模拟登录出现乱码
  7. 全国大学生计算机技能应用大赛Java模拟题
  8. Ckeditor编辑器的配置使用
  9. oracle 安装raid卡驱动,centos安装raid卡驱动总结
  10. CI框架 url指向错误 配置根目录
  11. 常见的系统间接口方式(02)-中间件的数据接口模式
  12. 5面阿里,终获offer(Java后端)
  13. thinkpad x61s 插 pcmia 安装 openwrt 启用双网卡
  14. 从零实现HarmonyOS(鸿蒙)运动手表两个游戏的合并
  15. TensorFlow2.0损失函数基本原理、调用及自定义
  16. 有电脑病毒就会有杀毒软件!李开复和MIT彭特兰这样看AI挑战
  17. Unity项目美术资源优化篇
  18. deny of sb sth_deny的短语
  19. Java模拟拨打电话程序_java_编写android拨打电话apk应用实例代码,android 实现拨打电话的app,代 - phpStudy...
  20. ORACLE 取唯一数据

热门文章

  1. 网络编程~socket
  2. 在C#中使用SQL语句什么情况需要使用‘单引号’和“双引号”
  3. 分布式技术追踪 2018年第五期
  4. iOS自动布局高级用法 纯代码约束写法
  5. 今天中午还收到了,一条诈骗短信,说是中奖了
  6. Dynamics CRM2013 业务规则的新建、激活与删除
  7. 李开复老师的《给中国学生的第一封信——从诚信谈起》
  8. 山西省计算机商务学校地址,山西计算机等级考试报名地点
  9. 计算机酒店管理论文摘要,酒店餐饮管理系统论文摘要目录.doc
  10. 拓端tecdat|Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据