美文网首页
冒泡排序java实现

冒泡排序java实现

作者: 雨落千木的时节 | 来源:发表于2018-10-23 15:53 被阅读0次

//冒泡排序
//基本思想:两个数比较大小,较大的数下沉,较小的数冒起来
//过程:1.比较相邻的两个数,如果第二个数小就交换位置
//2.从后向前两两比较,一直到比较最前面的两个数据。最终最小数被交换到起始的位置,
//这样第一个最小数的位置就排好了
//继续重复上述过程,依次将第2,3,...n-1个最小数排好位置
//平均时间复杂度为:O(n^2)

public class BubbleSort {

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 实现 C 实现 选择排序 java 实现 C 实现

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • Java 实现冒泡排序

    本文介绍冒泡排序原理及 Java 语言实现。 目录 冒泡排序原理 代码实现 冒泡排序原理 比较相邻的元素,升序时如...

  • 常用排序算法的Java实现

    冒泡、插入、选择、归并、快速排序的Java实现

  • 常见排序的java实现

    常见排序的java实现 常见排序java实现 插入排序(二分插入排序) 希尔排序 快速排序(三数中值快排) 冒泡排...

  • java 实现排序算法之「选择排序」

    java 实现排序算法系列 继冒泡排序算法之后,选择排序终于和大家见面了。为什么冒泡排序之后要说选择排序呢,是因为...

  • java快速学习排序---冒泡排序

    1.java实现冒泡排序 (1)、图解冒泡排序 (2)、冒泡排序原理 把相邻的元素两两比较,当一个元素大于它右侧相...

  • 面试知识点

    排序冒泡排序快速排序选择排序插入排序二路归并 查找二分查找 排序和查找的java实现 java语言Java字符串字...

  • 排序算法——冒泡排序

    冒泡排序(Bubble sort) 目录 1. 基本原理 图解 2. 代码实现 java 一、基本原理 冒泡排序(...

  • 必须知道的排序算法和对应语言的实现

    必须知道的排序算法—Java实现 1 冒泡排序 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较...

网友评论

      本文标题:冒泡排序java实现

      本文链接:https://www.haomeiwen.com/subject/ipjazftx.html