选择排序和冒泡排序(JAVA)
2016-03-15 23:27
549 查看
选择排序
从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了
冒泡排序
冒泡排序就是比较相邻的元素大小,将小的前移,大的后移,就像水中的气泡一样,最小的元素经过几次移动,会最终浮到水面上。
从所有序列中先找到最小的,然后放到第一个位置。之后再看剩余元素中最小的,放到第二个位置……以此类推,就可以完成整个的排序工作了
package sxd.learn.java; /** * * @author lab * */ public class SelectionSort { public static void main(String[] args) { int[] iArray = {0}; selectionSort(iArray); for (int element : iArray) { System.out.print(element + " "); } System.out.println(); } /** * 选择排序 * @param iArray */ public static void selectionSort(int[] iArray){ if(iArray.length == 0 || iArray.length == 1) return ; int min = 0; int index = 0; for (int i = 0; i < iArray.length; i++) { min = iArray[i]; index = i; for (int j = i + 1; j < iArray.length; j++) { if(iArray[j] < min){ min = iArray[j]; index = j; } //交换两个数的位置 } exchange(iArray, i, index); } } /** * 交换两个数 */ public static void exchange(int[] iArray, int i, int j){ int temp = iArray[i]; iArray[i] = iArray[j]; iArray[j] = temp; } }
冒泡排序
冒泡排序就是比较相邻的元素大小,将小的前移,大的后移,就像水中的气泡一样,最小的元素经过几次移动,会最终浮到水面上。
package sxd.learn.java; /** * * @author lab * */ public class BubbleSort { public static void main(String[] args) { int[] iArray = {5, 3, 4, 8, 2, 1, 0, -2, -1}; print(iArray); bubbleSort(iArray); } /** * 冒泡排序 */ public static void bubbleSort(int[] iArray){ boolean exchange = false; if(iArray.length == 0 || iArray.length == 1) return ; for (int i = 0; i < iArray.length; i++) { exchange = false; for (int j = iArray.length - 1; j > i; j--) { if(iArray[j] < iArray[j - 1]){ exchange = true; exchange(iArray, j, j - 1); } } print(iArray); if(!exchange) break; } } /** * 交换两个数 */ public static void exchange(int[] iArray, int i, int j){ int temp = iArray[i]; iArray[i] = iArray[j]; iArray[j] = temp; } public static void print(int[] iArray){ for (int element : iArray) { System.out.print(element + " "); } System.out.println(); } }
相关文章推荐
- java基础(二)之数据类型
- Springframework和Hibernate版本对应关系
- Spring Boot 系列 —— Hello World
- java <T> <E> <?>
- Java静态变量,常量,成员变量,局部变量
- 如何解决Eclipse开发android程序的编译错误:com/android/dx/command/dexer/Main : Unsupported major.minor version 52.0?
- Java基础复习系列五
- java7新特性之Enhanced syntax for numeric literals
- 设计模式之------创建型模式(五)-----原型模式
- Ajax前台请求 以及 后台 Java 处理 (包含undefined的问题)
- java连接数据库常见错误总结
- Java Bean简单介绍
- leetcode:Restore IP Addresses 【Java】
- struts2——(8)(①3种情况通配符的使用方法②动态方法调用 )
- 关于java对象复制clone 给一个对象赋值 会随原来的对象变化
- java多态类的成员访问特点探究
- maven生成web project,后转换为eclipse
- java中的编码与解码问题
- JAVA 高级报表导出Excel
- Spring注解