选择排序
来源:互联网 发布:真丝睡衣 知乎 编辑:程序博客网 时间:2024/05/29 07:00
思想
选出最大(最小)的数,将该数字与无序区的最后(最前)的数交换。最终达到有序
实现思路
使用双重for循环,依次遍历找出无序区 的最大(最小)值。
实现代码
package sort;import java.util.Random;/** * @author chenkx * */public class SelectSort { /** * 选择排序:选出数组中的最大值,将最大值与最后的值交换;程序运行后的,数组末尾已经排序的部分不再遍历 * 百万随机数排序耗时:831833毫秒,约14分钟; * @param arr */ public static void selectSort(int[] arr){ int max; int n; for(int i=0;i<arr.length;i++){ max = 0; n = 0; for(int j=0;j<arr.length-i;j++){ if(max<arr[j]){ max = arr[j]; n = j; } if(j==(arr.length-i-1)){ swap(arr,n,j); } } } } private static void swap(int[] arr, int n, int j) { int tem; tem = arr[n]; arr[n]=arr[j]; arr[j]=tem; } public static void main(String[] args) { int[] arr = new int[1000000]; for(int i = 0; i < arr.length; i++){ arr[i] = new Random().nextInt(1000000); } System.out.println(1);// int[] arr = { 8, 5, 6, 7, 2, 3 }; long startTime=System.currentTimeMillis(); SelectSort.selectSort(arr); long endTime=System.currentTimeMillis(); System.out.println(endTime-startTime);// for ( int i : arr ) {// System.out.println(i);// } }}
阅读全文
0 0
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序:
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- 选择排序
- alpine linux填坑之路(一)
- 算法——硬币选择问题(dp、贪心)
- WebSockte
- 神经网络相关名词解释
- 51nod 1678 lyk与gcd mobius反演
- 选择排序
- 查询算法
- 8月英语学习总结
- hibernate的增删改查和三种状态
- Centos7安装部署Redis3.2.9 (普通用户)
- 题目84:阶乘的0
- python import
- 关于对象创建及初始化的面试向理解
- webrtc 接收packt包后处理