- 浏览: 194996 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
hao3721:
dsfasd
ehcache 使用 -
nihaokid:
方法是不会存在在对象内存中的,它存在于方法区,建议看看jvm的 ...
Java 深层理解 父类引用指向子类对象 -
vissalan:
有一点没看明白Father f1 = (Father)s;这时 ...
Java 深层理解 父类引用指向子类对象 -
咖啡舞者:
非常感谢这种分享精神.
在BREW中实现自己的GUI(8)-IWEB的封装 -
咖啡舞者:
这是创建的代码。
在设备上调的。
界面在手机和模拟器上显示的差异
package test.sort;
public class TestSort {
/**
* 冒泡排序(升序)
* 思想:将要排序的元素看做是竖着的排序的气泡,较小的元素比较轻,从而要往上符。在冒泡排序算法中我们要
* 对这个气泡序列处理若干遍,所谓一遍处理,就是自底向上检查一遍这个序列。并时刻注意两个相邻的元素的顺序
* 是否正确,如果发现两个相邻元素的顺序不对,即轻的元素子下面,就交互他们的位置,显然,处理一遍之后,最轻
* 的元素就浮到最高位置,处理二遍之后,次轻的元素就浮到次高位置,在做第二编处理时,由于最高位置的元素已是
* 最轻的元素,所以不必检查,一般地,第i编处理时,不必检查第i高位置以上的元素,应为前面i-1编的处理,他们
* 正确的排好序。
* @param src 待排序数组
*/
private static void toBubbleSortAsc(int[] src){
long start = System.currentTimeMillis();
for(int k=0;k<1000000;k++){
for(int i=0;i<src.length;i++){
for(int j=i+1;j<src.length;j++){
int temp;
if(src[i]>src[j]){
temp=src[j];
src[j]=src[i];
src[i]=temp;
}
}
}
}
System.out.println("冒泡排序(升序)如下,耗时:"+ (System.currentTimeMillis() - start));
}
/**
* 冒泡排序(降序)
* @param src 待排序数组
*/
private static void toBubbleSortDesc(int[] src){
long start = System.currentTimeMillis();
for(int k=0;k<1000000;k++){
for(int i=0;i<src.length;i++){
for(int j=i+1;j<src.length;j++){
int temp;
if(src[i]<src[j]){
temp=src[j];
src[j]=src[i];
src[i]=temp;
}
}
}
}
System.out.println("冒泡排序(降序)如下,耗时:"+ (System.currentTimeMillis() - start));
}
/**
* 选择排序
* 思想:对待排序的记录序列进行n-1编处理,第1编处理是将L[1..n]中最小者与L[1]交互位置第2编处理是将
* L[2..n]中最小者与L[2]交换位置,...,第i编处理是将L[i..n]中最小者与L[i]交互位置,这样,经过i编处理
* 后,前i个记录的位置就已经按从小到大顺序排序好了。
* 当然,实际操作时,也可以根据需要,通过从待排序的记录中选择最大这与其首记录交互位置,按降序排序处理
* @param src 待排序数组
*/
private static void doChooseSort(int[] src){
long start = System.currentTimeMillis();
for(int k=0;k<1000000;k++){
int temp;
for(int i=0;i<src.length;i++){
temp=src[i];
//最小数下标
int smallLocation=i;
for(int j=i+1;j<src.length;j++){
if(src[j]<temp){
//取出最小数
temp=src[j];
//最小数下标
smallLocation=j;
}
}
src[smallLocation]=src[i];
src[i]=temp;
}
}
System.out.println("选择排序如下,耗时:"+ (System.currentTimeMillis() - start));
}
/**
* 插入排序 (while循环)
* @param src 待排序数组
*/
private static void doInsertSortWhile(int[] src){
long start = System.currentTimeMillis();
for(int k=0;k<1000000;k++){
for(int i=1;i<src.length;i++){
int temp = src[i];
int j=i;
while(src[j-1]>temp){
src[j]=src[j-1];
j--;
if (j<=0) break;
}
src[j]=temp;
}
}
System.out.println("插入排序 (while循环)如下,耗时:"+ (System.currentTimeMillis() - start));
}
/**
* 插入排序 (for循环)
* @param src 待排序数组
*/
private static void doInsertSortfor(int[] src){
long start = System.currentTimeMillis();
for(int k=0;k<1000000;k++){
for(int i=1;i<src.length;i++){
int temp=src[i];
int j;
for (j=1;j>0;j--){
if(src[j-1]>temp){
src[j]=src[j-1];
}else{
break;
}
}
src[j]=temp;
}
}
System.out.println("插入排序 (for 循环)如下,耗时:"+ (System.currentTimeMillis() - start));
}
public static void main(String[] args){
int[] src=new int[]{3,5,1,2,7,8,4};
//冒泡排序(升序)
TestSort.toBubbleSortAsc(src);
for(int i=0;i<src.length;i++){
System.out.print(src[i]+" ");
}
//冒泡排序(降序)
System.out.println();
TestSort.toBubbleSortDesc(src);
for(int i=0;i<src.length;i++){
System.out.print(src[i]+" ");
}
//选择排序
System.out.println();
TestSort.doChooseSort(src);
for(int i=0;i<src.length;i++){
System.out.print(src[i]+" ");
}
//插入排序 (while循环)
System.out.println();
TestSort.doInsertSortWhile(src);
for(int i=0;i<src.length;i++){
System.out.print(src[i]+" ");
}
//插入排序 (for循环)
System.out.println();
TestSort.doInsertSortfor(src);
for(int i=0;i<src.length;i++){
System.out.print(src[i]+" ");
}
}
}
发表评论
-
Java实现通用线程池
2009-10-12 16:17 1035URL: http://blog.csdn.net/polar ... -
java 内存溢出分析
2009-10-09 15:44 1201内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终 ... -
Java的内存泄漏
2009-10-09 13:27 805Java 的一个重要优点就 ... -
dom4j操作xml基础--Visitor访问模式解析XML
2009-07-03 17:15 1330http://www.blogjava.net/bulktre ... -
Dom4j的全面解析
2009-07-03 17:03 987作者:冰云 icecloud(AT)sin ... -
关于java使用javacomm20-win32实践总结
2009-06-21 23:34 726由于这几天要通过java调 ... -
20非常有用的Java程序片段 (下)
2009-05-26 14:29 108117. 把 Array 转换成 Map vi ... -
20非常有用的Java程序片段 (中)
2009-05-26 14:08 88712. 单实例Singleton 示例 请先阅读这篇文章 ... -
20非常有用的Java程序片段 (上)
2009-05-26 14:02 944下面是20个非常有用的Java程序片段,希望能对你有用。 1 ... -
红黑树的Java实现
2009-03-16 00:42 945红黑树可能是要考虑情况最多的BST树了,它有自己的规则(见代码 ... -
排序算法复习(Java实现)(二): 归并排序,堆排序,桶式排序,基数排序
2009-03-16 00:40 1146转自:http://www.blogjava.net/java ... -
排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
2009-03-16 00:37 884转自:http://www.blogjava.net/java ... -
Java 深层理解 父类引用指向子类对象
2009-03-10 11:44 2644从对象的内存角度来理解试试. 假设现在有一个父类Father, ... -
java native method
2009-03-02 20:40 955一. 什么是Native Method 简单地讲,一个Na ... -
java 简介--学习笔记
2009-02-22 22:26 735一 java 特点 1 、简单 Java 设计 ... -
String理解
2009-02-21 00:44 843要理解 java中String的运作方式,必须明确一点:Str ... -
Java的时间处理
2009-02-21 00:42 8831. Java计算时间依靠1970 ...
相关推荐
用java实现了以下算法: 1、冒泡排序、冒泡排序的两种改进。 2、插入排序。 3、选择排序。 4、希尔排序。 5、归并排序。 6、快速排序。
用java语言实现冒泡排序、插入排序、堆排序、快速排序、归并排序、希尔排序、桶排序,并且对各种排序算法进行性能的比较。
插入排序 冒泡排序 堆排序 基数排序 选择排序 快速排序的源码 java实现
java插入冒泡选择三大排序java插入冒泡选择三大排序java插入冒泡选择三大排序java插入冒泡选择三大排序java插入冒泡选择三大排序java插入冒泡选择三大排序
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
常用三种排序:快速排序、冒泡排序、插入排序的java实现示例
//冒泡排序 for(int i=0;i;i++){ for(int j=i+1;j;j++){//注意j的开始值是i+1,因为按照排序规则,比a[i]大的值都应该在它后面 if(a[i] > a[j]){ int temp = a[j]; a[j] = a[i]; a[i] = temp; ...
java实现各种排序 快速 插入 冒泡 选择排序 完整代码 总结
JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,包括算法的详细介绍,以及对几种算法的详细测试
基础的java 冒泡法、选择法、插入法排序实现代码。
详细介绍选择排序、冒泡排序、插入排序且有相应的代码分析
java选择、插入、冒泡排序 java选择、插入、冒泡排序java选择、插入、冒泡排序java选择、插入、冒泡排序
java实现排序,各种排序算法,冒泡排序,选择排序,插入排序等等
八种排序算法原理及Java实现( 冒泡排序+快速排序直接插入排序+希尔排序+选择排序+归并排序+基数排序)
JAVA实现选择,冒泡,归并,插入,快速排序。并随机生成不同规模的随机数来测试各种排序方法耗费的时间。
java 代码实例 冒泡排序 直接插入排序 数组中插入数据
java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡
设计一个负责排序的程序包,实现多种排序算法,至少包括插入排序、冒泡排序和快速排序算法。 要求: 1.可以对任何简单类型和任意对象进行排序 2.可以支持升序、降序、字典排序等多种顺序要求 3.可以随意增加排序算法...
具体实例来实现五种排序 清晰完整 直接运行
用户能够从终端选择三种排序算法中的一种,包括插入排序,堆排序,选择排序,同时被排序的数也可以通过键盘输入,不限制输入的数字的个数,运用了Java的面向对象的思想