java排序之 选择排序
来源:互联网 发布:顶点软件股票 编辑:程序博客网 时间:2024/05/18 06:24
下面是个人对选择排序的理解,如有不正确的地方或者更好的方法请指正,谢谢。。。
选择排序 思路。每次拿第一个和之后的所有比较 找出最小的换位置直到所有的比较完
public class SelectionSort { /** * 降序 选择排序 * * * 此方法有个缺点 内层的每次比较都会交换数据 * * @param list */// public void sort(ArrayList<Integer> list) {// int temp = 0;// if (list.isEmpty()) {// return;// }// for (int i = 0; i < list.size(); i++) {// for (int j = i + 1; j < list.size(); j++) {// if (list.get(i) < list.get(j)) {// temp = list.get(i);// list.set(i, list.get(j));// list.set(j, temp);// }// }// }// } /** * 降序 选择排序 * <p> * <p> * 上面方法的优化版 * * @param list */ public void sort(ArrayList<Integer> list) { int temp = 0; int maxIndex = 0; if (list.isEmpty()) { return; } for (int i = 0; i < list.size() - 1; i++) { maxIndex = i; for (int j = i + 1; j < list.size(); j++) { if (list.get(maxIndex) < list.get(j)) { maxIndex = j; } } if (i != maxIndex) { temp = list.get(i); list.set(i, list.get(maxIndex)); list.set(maxIndex, temp); } } }}测试:
public class Test { public static void main(String[] args) { /************排序**********/ ArrayList<Integer> list = new ArrayList<Integer>(10); list.add(2); list.add(5); list.add(3); list.add(22); list.add(3); list.add(6); list.add(9); list.add(10); list.add(11); list.add(14); list.add(27); list.add(10); list.add(32); list.add(44); list.add(55); list.add(100); SelectionSort selectionSort = new SelectionSort(); selectionSort.sort(list); print(list); } private static void print(List list) { for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } }}输出:
100
55
44
32
27
22
14
11
10
10
9
6
5
3
3
2
阅读全文
0 0
- Java排序之选择排序
- java 排序 之选择排序
- Java排序之选择排序
- Java 排序之 选择排序
- java排序之 选择排序
- java排序之 选择排序
- java排序之 --- 选择排序
- Java之选择排序
- java之选择排序
- JAVA之选择排序
- Java之选择排序
- Java之选择排序
- Java排序之选择排序、插入排序、希尔排序
- java排序算法之(选择法排序)
- Java程序排序之选择排序
- java之冒泡排序和选择排序
- java排序算法之选择排序
- 排序算法之选择排序(JAVA)
- Puppet的在centos6.6下的初步安装配置以及证书注册
- 获取应用程序所在目录的方法
- 折腾wordpress之路
- java web 基础学习步骤,,很适合初学者
- MFC实现贪吃蛇小游戏
- java排序之 选择排序
- TypeScript实现贪吃蛇小游戏
- WebStorm2016.1 破解 激活
- (转)关于尾递归的解释
- 何为Monad
- iperf3已不再支持双工模式测试
- Nginx报错403 forbidden (13: Permission denied)的解决办法
- Node.js中如何处理耗时长的任务
- C++编写Node.js插件(Addon)