选择排序
来源:互联网 发布:linux 内核是什么 编辑:程序博客网 时间:2024/05/16 13:03
说明:
需要内外2个循环,外循环控制从“0”到“数组长度-2”次的递增循环,内循环控制从“外循环i+1”到“数组长度-1”次的递增循环,内循环从左往右比较j和i所在的两个数,用于找出较小数字的位置,然后将较小数字与i所在的数字交换位置,依次从左到右将最小数字左移。
需要内外2个循环,外循环控制从“0”到“数组长度-2”次的递增循环,内循环控制从“外循环i+1”到“数组长度-1”次的递增循环,内循环从左往右比较j和i所在的两个数,用于找出较小数字的位置,然后将较小数字与i所在的数字交换位置,依次从左到右将最小数字左移。
使用:
1.Java实现:
public class SortUtil {public static void main(String[] args) {int[] arr = new int[] { 1, 2, 3, 21, 6, 8, 100, 60, 23, 70, 29 };selectionSort(arr);int len = arr.length;for (int i = 0; i < len; i++) {System.out.println(arr[i]);}}/** * 选择排序 * * @param arr 待排序的数组 */public static void selectionSort(int[] arr) {int len = arr.length;int temp;// 用于交换时暂存较大数字的临时变量int minPos; // 用于暂存最小数的位置for (int i = 0; i < len - 1; i++) { // 外循环,控制从0到len-2次循环minPos = -1;for (int j = i + 1; j < len; j++) { // 内循环,控制从i + 1到len-1次循环if (arr[j] < arr[i]) { // 从开始往结尾比较j和i所在的两个数,用于找出较小数字的位置minPos = j; // 将最小的数字位置暂存}}if (minPos != -1) { // 判断上面的内循环是否找出最小数字,如果有则将最小数字与当前i所在数字交换,没用则继续下次外循坏temp = arr[i];arr[i] = arr[minPos];arr[minPos] = temp;}}}}
0 0
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序:
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- Nginx upstream的5种权重分配方式分享1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight 指定轮询几率,we
- 给热力图上的点添加事件
- 新版 cocoapod安装、更新和使用 , 安装中出现的错误及解决方案
- js用==比较两个相等的字符串时,报错
- phpcms自定义表单向导
- 选择排序
- lintcode(M)二叉树的层序遍历II
- 单例模式
- 手把手教你如何刷百度下拉联想词
- 各种排序算法及java实现
- PHPUnit的使用
- 解决第三方键盘的高度带来的问题。
- 在Activity中添加返回键
- 第五届蓝桥杯软件类决赛真题-C-A-1_海盗分金币