Java数组排序(插入,选择,冒泡)+显示排序时间
来源:互联网 发布:伦拜亚斯对乔丹数据 编辑:程序博客网 时间:2024/06/05 04:28
可以指定用什么方法排序
Args若有参数,则1表示使用插入排序,2表示使用冒泡排序,3表示使用选择排序
若不传入args参数,则默认使用三种排序
待排序数组通过运行中键盘输入
package no.four;import java.util.Scanner;public class Sort {public static void main(String args[]) {int sortType = 0;if (args.length > 0) {//System.out.println("輸入排序方式:\n1 插入排序\n2 冒泡排序\n3 選擇排序 ");sortType = Integer.parseInt(args[0]);}SortBasic sort ;switch (sortType) {case 1:sort = new InsertSort();sort.run();System.out.println("---------------------------");break;case 2:sort = new MaoPaoSort();sort.run();System.out.println("---------------------------");break;case 3:sort = new SelectSort();sort.run();System.out.println("---------------------------");break;default:sort = new InsertSort();sort.run();sort = new MaoPaoSort();sort.run();sort = new SelectSort();sort.run();System.out.println("---------------------------");break;}}}abstract class SortBasic{int ve[];/** * 输出int数组 * */private void printArray() {for (int i : ve) {System.out.print(i + " ");}System.out.println();}/** * 输入int数组 * */private void putArray() {int n;Scanner sc = new Scanner(System.in);System.out.print("Array size?");n = sc.nextInt();ve = new int[n];for (int i = 0; i < n; i++) {ve[i] = sc.nextInt();}return;}abstract void sort();void run(){putArray();printArray();sort();printArray();}}class InsertSort extends SortBasic{/** * 插入排序 * * @param ve * 待排序数组 * @return 升序数组 */@Overridepublic void sort() {long old = System.nanoTime();for (int i = 1; i < ve.length; i++) {int key = ve[i];int j;for (j = i; j > 0; j--) {if (key < ve[j - 1]) {ve[j] = ve[j - 1];} else {break;}}ve[j] = key;}System.out.println("插入排序耗费 " + (System.nanoTime() - old) + " 纳秒");return ;}}class MaoPaoSort extends SortBasic{/** * 冒泡排序 * * @param ve * 待排序数组 * @return 升序数组 */@Overridepublic void sort() {long old = System.nanoTime();for (int i = 0; i < ve.length; i++) {for (int j = i + 1; j < ve.length; j++) {if (ve[i] > ve[j]) {int temp = ve[i];ve[i] = ve[j];ve[j] = temp;}}}System.out.println("冒泡排序耗费 " + (System.nanoTime() - old) + " 纳秒");return ;}}class SelectSort extends SortBasic{/** * 选择排序 * * @param ve * 待排序数组 * @return 升序数组 */@Overridepublic void sort() {long old = System.nanoTime();for (int i = 0; i < ve.length; i++) {int lowerIndex = i;for (int j = i + 1; j < ve.length; j++) {if (ve[j] < ve[lowerIndex]) {lowerIndex = j;}}int temp = ve[i];ve[i] = ve[lowerIndex];ve[lowerIndex] = temp;}System.out.println("选择排序耗费 " + (System.nanoTime() - old) + " 纳秒");return ;}}
- Java数组排序(插入,选择,冒泡)+显示排序时间
- Java-数组排序(选择,冒泡,插入)
- [Java]数组排序-选择排序 冒泡排序 插入排序
- java数组的排序,选择排序,冒泡排序,插入排序
- Java排序算法(冒泡排序、选择排序、插入排序、反数组排序、快速排序)例子
- Java数组排序(冒泡,选择,插入,希尔)
- 冒泡排序、选择排序、插入排序、快速排序算法的时间性能分析(java实现)
- 数组(冒泡排序,选择排序,插入排序)
- 数组 冒泡排序 选择排序 插入排序
- Java数组排序总结(冒泡,选择,插入,希尔)
- Java数组排序总结(冒泡,选择,插入,希尔)
- Java-数组的三大排序方法(冒泡排序,选择排序,插入排序)
- 数组排序(冒泡,选择,插入,希尔)
- 排序数组 选择 冒泡 插入
- Java基本排序(插入排序,冒泡排序,选择排序)
- Java数组排序算法,冒泡,选择,插入,快速排序
- Java数组排序算法,冒泡,选择,插入,快速排序
- java 数组的排序,含冒泡、插入、选择、快速排序。
- C/C++获取当前系统毫秒时间 .
- 最新版的SSH框整合(Spring 3.1.1 + Struts 2.3.1.2 + BoneCP + Hibernate 4.1)更新增加C3P0和EhCache配置
- ios开发基础
- hdu Train Problem II
- jsp内置对象
- Java数组排序(插入,选择,冒泡)+显示排序时间
- 输入四个整数 比较他们的大小
- UML类图画法示例
- Android相机、相册获取图片显示并保存到SD卡
- 调用"/Windows/wceload.exe /noui /Windows/System_SR_chs_wm.cab"后返回了部署后错误 0x00000001 的解决办法
- 谈谈目前工作的收获和不足
- JSP中文乱码问题终极解决方案
- 排序总结(代码实现):选择排序,插入排序,归并排序,快速排序,堆排序
- Client Copy 参数详情 - 备忘