数组常见常用的几种排序→→→冒泡→→选择→→插入
2012-08-29 17:01
357 查看
大家都知道数组的排序有很多种究竟哪种排序比较好呢? 究竟哪种排序的速度更快呢?
我做最近做了一个小小的测试分享给大家!!!!
总结:
插入排序效率高 费内存
选择排序速度比冒泡快
Arrays.sort 的速度比选择排序快并且操作简单
View Code
我做最近做了一个小小的测试分享给大家!!!!
总结:
插入排序效率高 费内存
选择排序速度比冒泡快
Arrays.sort 的速度比选择排序快并且操作简单
View Code
package com.zhou.sort; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; public class Test { /** * 冒泡。。。选择。。。。插入 */ public static void main(String[] args) { // TODO Auto-generated method stub int len=8; //int a[] = { 2, 6, 9, 7, 5, 3, 1, 4, 8 }; int [] a=new int[len]; for (int i = 0; i < len; i++) { int t=(int) (((Math.random()*100)+1)); a[i]=t; } System.out.print("插入:"); insertSort i= new insertSort(); i.sort(a); System.out.print("冒泡:"); Bubble Bubble= new Bubble(); //排序前打印系统时间 Calendar cal=Calendar.getInstance(); System.out.println(cal.getTime()); Bubble.sort(a);//21秒 //排序前打印系统时间 cal=Calendar.getInstance(); System.out.println(cal.getTime()); System.out.print("选择:"); Select s = new Select(); cal=Calendar.getInstance(); System.out.println(cal.getTime()); s.sort(a); //10秒 //排序前打印系统时间 cal=Calendar.getInstance(); System.out.println(cal.getTime()); System.out.print("系统:"); cal=Calendar.getInstance(); System.out.println(cal.getTime()); Arrays.sort(a);//速度最快 cal=Calendar.getInstance(); System.out.println(cal.getTime()); // 输出 for (int j = 0; j < a.length; j++) { System.out.print(a[j] + " "); } } } /* * 插入排序 效率高 费内存 */ class insertSort{ public void sort(int a[]) { for (int i = 0; i < a.length; i++) { int insertVal=a[i]; //insertVal准备和前一位数 int index=i-1; while(index>=0&&insertVal<a[index]){ //将把a[index]向后移动 a[index+1]=a[index]; index--; } //将insertVal插入到适当位子 a[index+1]=insertVal; } // 输出 for (int j = 0; j < a.length; j++) { System.out.print(a[j] + " "); } } } class Select { public void sort(int a[]) { /* * 选择排序 速度比冒泡快 */ // 外层循环 一共循环的次数 for (int i = 0; i < a.length - 1; i++) { // 内层循环 逐个比较 for (int j = i + 1; j < a.length; j++) { // 比较 if (a[i] > a[j]) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } } } // 输出 /*for (int j = 0; j < a.length; j++) { System.out.print(a[j] + " "); }*/ } } /* * 冒泡排序 */ class Bubble { public void sort(int a[]) { // 外层循环 一共循环的次数 for (int i = 0; i < a.length - 1; i++) { // 内层循环 逐个比较 for (int j = 0; j < a.length - 1 - i; j++) { // 比较 if (a[j] > a[j + 1]) { int temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } // 输出 /*for (int j = 0; j < a.length; j++) { System.out.print(a[j] + " "); }*/ } }
相关文章推荐
- Java数组冒泡,选择,插入三种常用排序法及自带的快速排序法
- C数据结构-几种常见的排序:冒泡,选择,插入,希尔
- 几种排序的java实现:选择、插入、冒泡、快排
- (转) Java 数组排序总结 ( 冒泡,选择,插入,希尔)
- 常用的排序 冒泡 ,选择,插入,快速
- Java之美[从菜鸟到高手演变]之常见的几种排序算法-插入、选择、冒泡、快排、堆排等
- php 常用常见算法 (冒泡,选择,插入 ...TBD)
- 常见的几种排序算法-插入、选择、冒泡、快排、堆排等
- 数组排序(冒泡、选择、插入、快排、希尔、桶排序、堆排序)
- Java-数组排序(选择,冒泡,插入)
- 基础算法学习(一)__几种排序:选择、插入、冒泡和快排
- 数组排序总结(冒泡,选择,插入,希尔)
- Java数组排序总结(冒泡,选择,插入,希尔)
- 各种常见的排序 java版本(冒泡,选择,插入,希尔,快速)
- Java对一维数组排序:冒泡,选择,插入,比较效率
- Java常见的几种排序算法-插入、选择、冒泡、快排、堆排等
- c++ 数组排序(选择, 冒泡, 插入,快速)
- JAVA几种常见的排序、冒泡、插入、、
- 常见内部排序算法 简单数组实现与分析(快速(偶原创partition函数,望众高手指正)、归并、希尔、插入、选择、冒泡)
- Java中常见的数组排序算法(包括冒泡,选择,插入,快速排序)