排序——选择排序
来源:互联网 发布:安卓福利软件 编辑:程序博客网 时间:2024/06/09 22:49
public class Selection { public static void sort(Comparable[] a){ for(int i = 0; i< a.length;i++){ int min = i; for(int j = i + 1;j<a.length;j++){ if(less(a[j],a[min])) min = j; } echo(a,i,min); } } public static boolean less(Comparable v,Comparable w){ return v.compareTo(w) < 0; } public static void echo(Comparable[] a,int i,int j){ Comparable t = a[i]; a[i] = a[j]; a[j] = t; } public static void show(Comparable[] a){ for(int i = 0; i < a.length;i++ ){ System.out.print(a[i] + " "); } } public static boolean isSorted(Comparable[] a){ for(int i = 1; i < a.length;i++){ if(less(a[i],a[i-1])) return false; } return true; } public static Comparable[] Random(int num){ Integer[] a = new Integer[num]; Random rand = new Random(); for(int i = 0;i<num;i++){ a[i] = rand.nextInt(10000); } return a; } public static void main(String[] args) { Comparable[] a = Selection.Random(200000); Long start = System.currentTimeMillis(); sort(a); Long end = System.currentTimeMillis(); System.out.println("Time is " + (end - start)); /*show(a);*/ }}
思路:遍历数组,找到最小的元素,和第一个进行交换,接下来在剩下的元素中找到最小的数组,和第二个进行交换,以此类推。
关键是每次选择最小值。
0 0
- 排序—选择排序
- 排序—选择排序
- 排序——选择排序
- 排序——选择排序
- 排序——选择排序
- 排序——选择排序
- 排序——选择排序
- 排序——选择排序
- 排序——选择排序
- 选择排序—堆排序
- 选择排序—堆排序
- 排序算法—选择排序
- 选择排序——直接选择排序
- 选择排序——简单选择排序
- 选择排序——简单选择排序
- 选择排序——简单选择排序
- 选择排序——简单选择排序
- 选择排序—简单选择排序
- Java学习基础之继承、抽象、接口
- Java学习日记(一)关键字、标识符、注释、常量与变量、运算符、转义字符
- 百度地图API学习总结
- 大数相乘
- ASP.NET 无法创建新用户,提示密码最短长度为 7,其中必须包含以下非字母数字字符: 1
- 排序——选择排序
- 第4周项目3用对象数组操作长方柱类
- 操作系统课程设计——pintos源码的分析与修改
- Web Service学习笔记(webservice、soap、wsdl、jws详细分析)
- 简单计算器(利用函数数组指针)带图片
- Zabbix2.4 on Redhat6.4安装成功步骤记录
- 字符串流 istringstream 和 ostringstream 的用法
- Android 的Handler、Looper与HandlerThread
- 为什么你需要一个自己的公司