`

排序算法java实现冒泡排序

 
阅读更多

 

public class BubbleSort {

//冒泡排序

//基本思想:两个数比较大小,较大的数下沉,较小的数冒起来

//过程:1.比较相邻的两个数,如果第二个数小就交换位置

//2.从后向前两两比较,一直到比较最前面的两个数据。最终最小数被交换到起始的位置,

//这样第一个最小数的位置就排好了

//继续重复上述过程,依次将第2,3,...n-1个最小数排好位置

//平均时间复杂度为:O(n^2)

public static void main(String[] args) {

int[] arr = new int[]{6,2,4,1,9,3,6,7,0};

System.out.println("排序前=====");

 

print(arr);

System.out.println("");

System.out.println("排序后");

long start1 = System.currentTimeMillis();

int[] result = BubbleSort(arr);

long end1 = System.currentTimeMillis();

System.out.println((end1-start1));

print(result);

System.out.println("");

System.out.println("优化后===");

long start2 = System.currentTimeMillis();

int[] result2 = BubbleSort2(arr);

long end2 = System.currentTimeMillis();

System.out.println((end2-start2));

print(result2);

 

}

public static int[] BubbleSort(int[] arr){

int temp;//临时变量

for(int i=0; i<arr.length-1; i++){

for(int j=arr.length-1; j>i; j--){

if(arr[j]<arr[j-1]){

temp = arr[j];

arr[j] = arr[j-1];

arr[j-1] = temp;

}

}

}

 

return arr;

}

//优化:

//针对问题:数据的顺序排好后,冒泡算法仍会继续进行下一轮的比较,直到arr.length-1次,后面的比较都是没意义的。

//解决方案:

//设置标志位flag,如果发生了交换flag设为true,如果没有交换flag设为false

//这样一轮比较结束后,如果flag仍未=为false,即这一轮没有发生交换,说明数据的顺序已经排好了,没有必要再继续进行下去。

public static int[] BubbleSort2(int[] arr){

int temp = 0;

boolean flag = false;

for(int i=0; i<arr.length-1; i++){

for(int j=arr.length-1; j>i; j--){

if(arr[j]<arr[j-1]){

temp = arr[j];

arr[j] = arr[j-1];

arr[j-1] = temp;

}

}

}

return arr;

}

 

public static void print(int[] arr){

for(int i=0; i<arr.length; i++){

System.out.print(arr[i]+",");

}

}

}

 

分享到:
评论

相关推荐

    应用Java和Python实现冒泡排序算法

    冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python...

    用java实现冒泡排序算法

    用 Java 实现冒泡排序算法 冒泡排序是一种简单的排序算法,它的基本思想是通过反复比较和交换相邻元素的位置来实现排序。下面是用 Java 实现冒泡排序算法的详细解释: 1. 排序方法 冒泡排序的排序方法是将被排序...

    各种排序算法比较(java实现)

    本文将详细探讨标题所提及的几种排序算法:合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合Java语言的实现进行解析。 1. **合并排序(Merge Sort)**: 合并排序是一种基于分治策略的排序算法...

    常用排序算法的java实现(冒泡、插入、选择、希尔、归并、快排)

    本篇文章将详细讲解标题中提到的六种常见排序算法的Java实现。 1. **冒泡排序**:冒泡排序是最基础的排序算法之一,它通过不断交换相邻的逆序元素来逐渐将较大的元素“浮”到数组的前端。在Java中,冒泡排序的基本...

    java排序算法插入选择冒泡

    java排序算法java排序算法插入选择冒泡java排序算法插入选择冒泡

    Java冒泡排序算法

    ### Java冒泡排序算法知识点详解 #### 一、冒泡排序基本概念 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是...

    各种排序算法java实现

    在提供的文件中,我们可以看到有四种经典的排序算法的Java实现:插入排序、冒泡排序、选择排序以及希尔排序。 **插入排序**: 插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据...

    冒泡排序 算法(冒泡,选择,插入,数组排序)

    最后,代码还使用了Java内置的`java.util.Arrays.sort(a)`方法对数组进行排序,这是Java提供的快速排序实现,通常比上述的简单排序算法效率更高。 总的来说,这段代码提供了四种排序算法的实现,分别是冒泡排序、...

    java实现冒泡排序

    下面是一个简单的Java冒泡排序实现: ```java public class BubbleSort { public static void bubbleSort(int[] array) { int n = array.length; for (int i = 0; i ; i++) { // 外层循环控制遍历次数 for (int...

    常见的七大排序算法Java实现.zip

    本压缩包"常见的七大排序算法Java实现.zip"包含了七种经典的排序算法在Java语言中的实现。尽管文件列表中并未明确列出每种排序算法的名称,但根据常规,这七大排序算法可能包括冒泡排序、插入排序、选择排序、快速...

    JAVA冒泡排序和快速排序算法

    在JAVA中,实现这两种排序算法可以使用面向对象的特性,创建一个类如`MaopaoKuaisu.java`,在这个类中定义两个方法,分别实现冒泡排序和快速排序。类的结构可能如下: ```java public class MaopaoKuaisu { public...

    java算法——冒泡排序

    * 冒泡排序: * 每次在无序队列里将相邻两个数一次进行比较, * 将小数调到前面,逐次比较,直至将最大的数移到 * 最后。将剩下的N-1个数继续比较,将次大数移至 * 倒数第二位。

    排序算法JAVA实现,eclipse+txt

    Java作为一种广泛应用的编程语言,提供了丰富的工具和技术来实现各种排序算法。本资料包包含了一个基于Java的排序算法实现,以及Eclipse工程文件,方便开发者在Eclipse集成开发环境中进行调试和学习。 1. **冒泡...

    常用排序算法java演示

    本文将深入探讨标题"常用排序算法java演示"中涉及的知识点,包括排序算法的原理、Java实现方式以及其在实际应用中的图形演示。 首先,让我们逐一了解几种常见的排序算法: 1. **冒泡排序(Bubble Sort)**:这是一...

    java基础冒泡排序.ppt

    冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。 走访元素的工作是重复...

    Java排序算法实现:冒泡与选择排序示例代码

    Java排序算法实现主要涉及到两种经典的算法:冒泡排序和选择排序。这两种算法都是基于比较的排序方法,适用于小规模或教学目的的数据排序。 **冒泡排序(Bubble Sort)** 是一种简单直观的排序算法,其核心思想是...

    用java实现冒泡排序法

    以下是一个简单的Java冒泡排序实现: ```java public class BubbleSort { public static void main(String[] args) { int[] array = new int[]{5, 2, 8, 3, 9, 1}; // 待排序的数组 int n = array.length; ...

    JAVA冒泡排序算法

    冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1),是一种原地排序算法。虽然它在最坏情况和平均情况下的效率都不高,但由于其实现简单,常被用于教学和理解排序算法的基本原理。 冒泡排序的主要步骤包括: 1. 比较...

Global site tag (gtag.js) - Google Analytics