"选择排序"算法-之通俗易懂原理讲解-java编程
来源:互联网 发布:扫描sql注入点 编辑:程序博客网 时间:2024/05/18 18:47
现在给大家讲一下java最基础的排序算法之一,也是必会的排序算法:选择排序,下面我先讲解选择排序的特点,在通过图片解析和代码解析帮组大家更好的理解.
1.概念
"选择排序"就是第0个逐步和后面全部的比,比完0位置就得到最小的数,紧接着再从1位置对比后面的元素,以此类推,逐步得到从小到大的值.
2.特点:
一.每次比当前位到后面的所有
1.第一轮:0位开始,比后面全部值,1轮后:得到最小值在0位置 2.第二轮:1位开始,比后面全部值,2轮后:得第2小在1位置 3.第二轮:2位开始,比后面全部值,3轮后:得第3小在2位置 4.第二轮:3位开始,比后面全部值,4轮后:得第4小在3位置
二.最终得到从左到右到大的值
3.图解原理:
int[] arr = { 4, 2, -6, 9, 1 }
4.代码详情
/** * 选择排序 * * 总思路: * 1.每次比当前位到后面的所有 * 1.第一轮:0位开始,比后面全部值,1轮后:得到最小值在0位置 * 2.第二轮:1位开始,比后面全部值,2轮后:得第2小在1位置 * 3.第二轮:2位开始,比后面全部值,3轮后:得第3小在2位置 * 4.第二轮:3位开始,比后面全部值,4轮后:得第4小在3位置 * 2.最终得到从左到右到大的值 * */public class Demo02 { public static void main(String[] args) { int[] arr = { 4, 2, -6, 9, 1 };// 角标0-4,length=5; print(arr, "初始"); selectSort(arr); print(arr, "结果"); } private static void selectSort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) {// 效率-1 倒数第二个和倒数第一比 for (int j = i + 1; j < arr.length; j++) { if (arr[i] > arr[j]) { swap(arr, i, j); // 替换 } } print(arr, "第" + (i + 1) + "轮"); } } //替换方法 private static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } //打印数组 private static void print(int[] arr, String str) { for (int i = 0; i < arr.length; i++) { if (i != arr.length - 1) { if (i == 0) { System.out.print("[" + arr[i] + ","); } else { System.out.print(arr[i] + ","); } } else { System.out.println(arr[i] + "]" + "----" + str); } } }}
结果
[4,2,-6,9,1]----初始[-6,4,2,9,1]----第1轮[-6,1,4,9,2]----第2轮[-6,1,2,9,4]----第3轮[-6,1,2,4,9]----第4轮[-6,1,2,4,9]----结果
5.总结
记住要点,0位置逐步比后面的角标得到最小值;再到1位置得到倒数第二小;同理分别得到从小到大的值.
0 0
- "选择排序"算法-之通俗易懂原理讲解-java编程
- "汉诺塔"算法-之通俗易懂,简单的原理-java编程
- java选择排序算法深度讲解
- Java-排序算法之选择排序算法
- Java-算法之选择排序
- java算法之选择排序
- java算法之选择排序
- Java算法之选择排序
- 【java基础】选择排序算法原理+实现
- java排序算法之(选择法排序)
- java排序算法之选择排序
- 排序算法之选择排序(JAVA)
- Java算法排序之--选择排序
- JAVA排序算法之 选择排序
- java排序算法之三选择排序
- 排序算法之简单选择排序(Java)
- Java常用排序算法之选择排序
- 排序算法之选择法排序(Java)
- Archetype creation(maven创建模板)
- Hibernate中的Entity类之间的继承关系之三JOINED
- 递归法计算从n个人中选选k个人组成一个委员会的不同组合数
- JavaAPI之PreDestroy
- 【C#】ref 和 out
- "选择排序"算法-之通俗易懂原理讲解-java编程
- 菜鸟笔记-面向对象
- scala之正则表达式(一)基础匹配
- Java的字符串String
- 文章标题
- TDOA的定位
- MySQL数据库的设计和命令行模式下建立详细过程
- Unicode编码转汉字
- 程序员的疑惑