数据结构和算法——八种常用的排序算法----选择排序
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;}}}}
}
执行结果:
数据结构和算法——八种常用的排序算法----选择排序相关推荐
- 查找算法-4种常用的查找算法
文章目录 一.查找算法是什么? 查找算法简介 二.查找算法介绍及实现 1.顺序查找 算法描述 代码实现: 2.二分查找/折半查找 算法描述 代码实现: 3.插值查找 算法描述 代码实现: 4.斐波那契 ...
- 八种常用的排序算法(转)
下面要讲到的8种排序都属于内部排序,既在内存中完成,主要从理论原理方面来分析的. 插入排序 ①直接插入排序 例:六个数12 15 9 20 6 31 24 用直接插入排序,如下图: 思路: 第 ...
- 【排序】八种常用排序
1.插入排序 2.希尔排序 3.选择排序 4.堆排序 5.冒泡排序 6.快速排序 7.归并排序 8.计数排序 --------------- 插入排序 这个排序原来很简单,如图演示: 我们先把 9 看 ...
- 数据结构—排序算法总结(插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、合并排序、计数排序)
*排序 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作. 稳定性 在待排序的数组中,如果出现多个相同的关键字,例如:98751555512,中出现重复的数字,在 ...
- C语言——十四种内部排序算法【直接插入排序-冒泡排序-选择排序-插入排序-希尔排序-归并排序-快速排序-堆排序-折半插入排序-二分查找-路插入排序-表插入排序-简单选择排序-直接选择排序-树形选择】
目录: 一:插入排序 A:直接插入排序 1.定义: 2.算法演示 实例1: 3.基本思想 4.排序流程图 实例1: B:希尔排序 1.定义: 2.算法演示 实例2: C:其他插入排序 a:折半插入排序 ...
- 总结几种常用的安全算法
本文简单总结几种常用的安全算法 摘要算法 对称加密算法 非对称加密算法 数字签名 数字证书 web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 数字摘要 实现 将任意长 ...
- 算法总结---最常用的五大算法(算法题思路)
算法总结---最常用的五大算法(算法题思路) 一.总结 一句话总结: [明确所求:dijkstra是求点到点的距离,辅助数组就是源点到目标点的数组] [最简实例分析:比如思考dijkstra:假设先只 ...
- 常见排序算法详解(插入排序、希尔排序、选择排序、冒泡排序、快速排序)
1.1 插入排序 步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取下一个元素tem,从已排序的元素序列从后往前扫描 3.如果该元素大于tem,则将该元素移到下一位 4.重复步骤3,直到找 ...
- 排序算法(分类,时间复杂度)(快速排序,插入排序,希尔排序,选择排序,冒泡排序)
1.排序算法 1.排序的分类 分为内部排序和外部排序,其中内部排序分为插入排序.选择排序.交换排序.归并排序和基数排序.插入排序包括直接插入排序和希尔排序:选择排序包括简单选择排序和堆排序:交换排序包 ...
- C语言实现选择排序——简单选择排序算法
C语言实现简单选择排序 文章目录 C语言实现简单选择排序 简单选择排序算法 1.交换操作 2.简单选择排序算法实现 项目完整代码 运行效果图 简单选择排序算法 1.交换操作 //交换实现 void s ...
最新文章
- Fastadmin管理Mysql_FastAdmin-CMS模版制作(6)-正式部署
- 异步使用委托delegate --- BeginInvoke和EndInvoke方法
- JavaScript对象的几种创建方式?
- python excelwriter保存路径_python管理文件神器 os.walk
- 【Apscheduler】不生效也不报错,提示No handlers could be found for logger “apscheduler.executors.default”
- header python 环境信息_【关于header信息的构造】Python模拟登录出现乱码
- 全国大学生计算机技能应用大赛Java模拟题
- Ckeditor编辑器的配置使用
- oracle 安装raid卡驱动,centos安装raid卡驱动总结
- CI框架 url指向错误 配置根目录
- 常见的系统间接口方式(02)-中间件的数据接口模式
- 5面阿里,终获offer(Java后端)
- thinkpad x61s 插 pcmia 安装 openwrt 启用双网卡
- 从零实现HarmonyOS(鸿蒙)运动手表两个游戏的合并
- TensorFlow2.0损失函数基本原理、调用及自定义
- 有电脑病毒就会有杀毒软件!李开复和MIT彭特兰这样看AI挑战
- Unity项目美术资源优化篇
- deny of sb sth_deny的短语
- Java模拟拨打电话程序_java_编写android拨打电话apk应用实例代码,android 实现拨打电话的app,代 - phpStudy...
- ORACLE 取唯一数据
热门文章
- 网络编程~socket
- 在C#中使用SQL语句什么情况需要使用‘单引号’和“双引号”
- 分布式技术追踪 2018年第五期
- iOS自动布局高级用法 纯代码约束写法
- 今天中午还收到了,一条诈骗短信,说是中奖了
- Dynamics CRM2013 业务规则的新建、激活与删除
- 李开复老师的《给中国学生的第一封信——从诚信谈起》
- 山西省计算机商务学校地址,山西计算机等级考试报名地点
- 计算机酒店管理论文摘要,酒店餐饮管理系统论文摘要目录.doc
- 拓端tecdat|Python中利用长短期记忆模型LSTM进行时间序列预测分析 - 预测电力负荷数据