博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中常见的排序方式-选择排序(升序)
阅读量:5089 次
发布时间:2019-06-13

本文共 1059 字,大约阅读时间需要 3 分钟。

【基本思想】

假设数组为int[] a = { 49, 38, 65, 97, 76, 13, 27 },数组元素个数为7个。

第1轮比较:先是a[0]与a[1]比较,大于则先交换,再比较a[0]和a[2]......最后是a[0]与a[6]比较。总共比较6次。(此时a[0]已是数组中的最小值)

第2轮比较:先是a[1]与a[2]比较,大于则先交换,再比较a[1]和a[3]......最后是a[1]与a[6]比较。总共比较5次。

第3轮比较:先是a[2]与a[3]比较,大于则先交换,再比较a[2]和a[4]......最后是a[2]与a[6]比较。总共比较4次。

第4轮比较:先是a[3]与a[4]比较,大于则先交换,再比较a[3]和a[5]......最后是a[3]与a[6]比较。总共比较3次。

第5轮比较:先是a[4]与a[5]比较,大于则先交换,再比较a[4]和a[6]。总共比较2次。

第6轮比较:只用a[5]与a[6]比较,大于则先交换。总共比较1次。

【代码实现】

 

1     public static int[] selectSort(int[] arr) { 2         // 外层for循环控制比较的是第几轮 3         for (int i = 0; i < arr.length - 1; i++) { 4             // 内层for循环控制每轮比较的次数,arr[j]是右侧待比元素 5             for (int j = i + 1; j < arr.length; j++) { 6                 // 判断左是否大于右 7                 if (arr[i] > arr[j]) { 8                     // 交换数据 9                     int temp;10                     temp = arr[i];11                     arr[i] = arr[j];12                     arr[j] = temp;13                 }14             }15         }16         return arr;17     }

 

转载于:https://www.cnblogs.com/schiller-hu/p/8439179.html

你可能感兴趣的文章
JVM之垃圾收集
查看>>
并发编程之缓存一致性
查看>>
ucosiii 学习笔记
查看>>
mini2440 裸机程序下载到 sdram 不能运行。
查看>>
迅雷自动升级解决方法
查看>>
支持 UTF-8 中文的串口调试工具
查看>>
科学 multi port
查看>>
bne 1b 汇编含义
查看>>
mini2440 裸机程序,下载到nand 里面,复制到 sdram 中不运行
查看>>
stm32f4 dma + uart idle + double 调试小记
查看>>
arm 裸机学习笔记
查看>>
SizeBalanceTree
查看>>
1. Netty准备知识:Java NIO
查看>>
并查集
查看>>
2. Netty源码分析之使用篇
查看>>
3. Netty源码阅读之Channel
查看>>
5. Netty源码分析之ChannelPipeline 和 ChannelHanler
查看>>
6. Netty源码分析之EventLoop与EventLoopGroup
查看>>
4. Netty源码分析之Unsafe
查看>>
7. Netty源码分析之Future和Promise
查看>>