- 浏览: 198907 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 1059URL: http://blog.csdn.net/polar ... -
java 内存溢出分析
2009-10-09 15:44 1226内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终 ... -
Java的内存泄漏
2009-10-09 13:27 831Java 的一个重要优点就 ... -
dom4j操作xml基础--Visitor访问模式解析XML
2009-07-03 17:15 1388http://www.blogjava.net/bulktre ... -
Dom4j的全面解析
2009-07-03 17:03 1010作者:冰云 icecloud(AT)sin ... -
关于java使用javacomm20-win32实践总结
2009-06-21 23:34 757由于这几天要通过java调 ... -
20非常有用的Java程序片段 (下)
2009-05-26 14:29 110817. 把 Array 转换成 Map vi ... -
20非常有用的Java程序片段 (中)
2009-05-26 14:08 91812. 单实例Singleton 示例 请先阅读这篇文章 ... -
20非常有用的Java程序片段 (上)
2009-05-26 14:02 968下面是20个非常有用的Java程序片段,希望能对你有用。 1 ... -
红黑树的Java实现
2009-03-16 00:42 972红黑树可能是要考虑情况最多的BST树了,它有自己的规则(见代码 ... -
排序算法复习(Java实现)(二): 归并排序,堆排序,桶式排序,基数排序
2009-03-16 00:40 1175转自:http://www.blogjava.net/java ... -
排序算法复习(Java实现)(一): 插入,冒泡,选择,Shell,快速排序
2009-03-16 00:37 904转自:http://www.blogjava.net/java ... -
Java 深层理解 父类引用指向子类对象
2009-03-10 11:44 2686从对象的内存角度来理解试试. 假设现在有一个父类Father, ... -
java native method
2009-03-02 20:40 978一. 什么是Native Method 简单地讲,一个Na ... -
java 简介--学习笔记
2009-02-22 22:26 758一 java 特点 1 、简单 Java 设计 ... -
String理解
2009-02-21 00:44 871要理解 java中String的运作方式,必须明确一点:Str ... -
Java的时间处理
2009-02-21 00:42 9011. Java计算时间依靠1970 ...
相关推荐
下面是一个简单的Java冒泡排序实现: ```java public class BubbleSort { public static void bubbleSort(int[] array) { int n = array.length; for (int i = 0; i ; i++) { // 外层循环控制遍历次数 for (int...
在Java中,冒泡排序的基本思路是使用两个for循环,外层循环控制比较的轮数,内层循环用于两两比较并交换。改进的冒泡排序通常包括设置标志位来检测是否已经完成排序,以及添加一个提前退出循环的条件,当某次遍历...
用 Java 实现冒泡排序算法 冒泡排序是一种简单的排序算法,它的基本思想是通过反复比较和交换相邻元素的位置来实现排序。下面是用 Java 实现冒泡排序算法的详细解释: 1. 排序方法 冒泡排序的排序方法是将被排序...
例如,冒泡排序和插入排序简单但效率较低,适合小规模数据;堆排序和快速排序在中大规模数据上表现良好,但快速排序的不稳定性和堆排序的空间复杂度是需要注意的问题;归并排序和希尔排序在稳定性上有优势,而桶排序...
总的来说,这段代码提供了四种排序算法的实现,分别是冒泡排序、选择排序、插入排序以及Java内置的数组排序。每种排序算法都有其适用场景,理解这些算法可以帮助我们更好地解决实际问题,并根据需求选择合适的排序...
根据给定文件中的标题、描述、标签以及部分内容,本文将详细介绍冒泡排序、选择排序、插入排序、希尔排序以及利用Java内置方法进行排序这五种排序算法的具体实现过程及其背后的逻辑原理。 ### 一、冒泡排序 冒泡...
本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...
在`Insert.java`文件中,插入排序的实现可能包括: - 初始化已排序部分为第一个元素,然后逐个将后续元素与已排序部分的元素比较,并在合适位置插入。 - 每次插入一个新元素,都会导致已排序部分增加一个元素。 ...
以上就是Java中快速排序、冒泡排序和插入排序的实现方式。快速排序的平均时间复杂度为O(n log n),冒泡排序和插入排序的平均时间复杂度为O(n^2)。在实际应用中,快速排序通常优于其他两种排序,尤其是在大数据量时。...
本文将详细介绍三种经典的排序算法:选择排序、冒泡排序和插入排序,并结合Java代码进行分析。 ### 1. 选择排序(Selection Sort) 选择排序的主要思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,...
在本文中,我们将深入探讨Java编程中的三种基本排序算法:冒泡排序、插入排序和堆排序。这些排序算法是计算机科学中的基础知识,尤其对于初学者来说,理解和实现它们至关重要。我们将详细讲解每种排序算法的工作原理...
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
例如,插入排序和选择排序适合小规模数据,冒泡排序虽然效率较低但实现简单,堆排序和快速排序在处理大规模数据时有较好性能,而基数排序则能处理非负整数排序。在实际开发中,根据具体需求选择合适的排序算法是非常...
在Java中实现冒泡排序,我们可以创建一个名为`MyBubSort`的类,并在其中编写相应的函数。 首先,我们需要了解冒泡排序的基本步骤: 1. 比较相邻的元素,如果前一个比后一个大,则交换它们的位置。 2. 对每一对相邻...
本文将详细讨论两种常见的简单排序算法:冒泡排序和直接插入排序,它们都是基于比较的内部排序算法,并且在Java语言中实现。 **冒泡排序(Bubble Sort)** 冒泡排序是一种基础的排序算法,其基本思想是通过重复...
本文将详细讲解 Java 中的选择排序、插入排序以及冒泡排序,这三种经典的排序算法。 **选择排序(Selection Sort)** 选择排序是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或...
本文将深入探讨四种经典的排序算法:快速排序、插入排序、冒泡排序和选择排序,它们都是计算机科学中广泛使用的排序方法。我们将通过Java代码实现这些算法,并进行简要的总结。 **快速排序** 是由C.A.R. Hoare在...
java实现排序,各种排序算法,冒泡排序,选择排序,插入排序等等
java实现10种排序算法:选择排序、冒泡排序、插入排序、快速排序、归并排序、堆排序、希尔排序、桶排_sorting-algorithms
在本文中,我们将深入探讨三种基本的排序算法:插入排序、选择排序和冒泡排序。这些算法是计算机科学中基础且重要的部分,特别是在理解数据结构和算法效率方面。以下是对每种排序算法的详细说明: **插入排序...