算法(1)——Java冒泡算法

Java冒泡算法算是最常见的算法之一了。那么什么是冒泡算法呢?如下图所示(图片来自网络):

其实可以看到,第一遍的遍历过程中,首先比较第一对数字,比较交换完成后第二个数字一定是比较大的,接下来比较第二对,同样进行比较交换,那么这个时候第三个数一定是较大的,这样所有的数对比较完成之后,最大的数字就会冒泡到数组的最右侧。接下来第二轮就可以把第二大的数放在右侧数第二个位置上,以此类推...当遍历一遍没有可以交换的数字的时候,就说明这个队列已经是有序的了。

 1 public static void main(String[] args) {
 2         int[] arr = {11, 13, 10, 34, 31, 24, 15, 16, 26, 9, 16, 4992, 356};
 3         bubbleSort(arr);//排序完成,数字为9,10,11,13,15,16,16,24,26,31,34,356,4992,
 4     }
 5
 6
 7     public static void bubbleSort(int[] arr) {
 8         for (int i = 0; i < arr.length - 1; i++) {
 9             boolean flag = true;//设定一个标记,若为true,则表示排序已然完成。
10             for (int j = 0; j < arr.length - 1 - i; j++) {
11                 if (arr[j] > arr[j + 1]) {
12                     int temp = arr[j];
13                     arr[j] = arr[j+1];
14                     arr[j+1] = temp;
15                     flag = false;
16                 }
17             }
18             if (flag) {
19                 System.out.print("排序完成,数字为");
20                 for (int i1 : arr) {
21                     System.out.print(i1+",");
22                 }
23                 break;
24             }
25         }
26    
27     }

原文地址:https://www.cnblogs.com/leemumu/p/8546964.html

时间: 2024-10-11 22:54:43

算法(1)——Java冒泡算法的相关文章

Java冒泡算法及中位数算法

import java.math.BigDecimal; public class Test { public static void main(String[] args) { //控制随机数量 int c = 100; Number[] array = new Number[c]; /*初始化*/ for(int i=0;i<array.length;i++){ Number random = round(Math.random()*100,2); array[i] = random; }

排序算法之 Java插入排序算法

package net.qh.test.sort; import java.util.ArrayList; import java.util.Calendar; import java.util.List; /** * Created by Administrator on 2016/03/01. */ public class Insert { public int[] sort(int[] arr){ if ( arr == null || arr.length <= 1 ){ return

JAVA 冒泡算法

每种语言都有冒泡JAVA实现如下: public static void main(String args[]){ System.out.println("Start"); int[] sort ={5,2,6,8,3,1,9,0,4}; Sort(sort); System.out.println("End"); } public static int[] Sort(int[] sort){ for (int i=0;i<sort.length-1;i++)

java冒泡算法和选择排序法

1 package test.auto; 2 3 import java.util.Arrays; 4 5 import org.apache.bcel.generic.FieldGenOrMethodGen; 6 7 public class Maopao0807{ 8 9 public static void main(String[] args) { 10 //冒泡,每个相邻进行比较 11 int a[]={ 6, 5, 3, 1, 8, 7, 2, 4 , 0}; 12 for (int

排序算法之JAVA基数排序算法

package net.qh.test.sort; import java.util.ArrayList; import java.util.List; /** * Created by Administrator on 2016/03/07. */ public class Radix { public static int[] asc( int[] array ){ int index = 1; /** 最大数字位数(如100为3位数字,2000为4位数字) */ /** 取得最大数字位数

常用排序算法及Java实现

排序算法,可以分为内部排序和外部排序两大种.这篇文章主要对内部排序进行介绍.内部排序又分为两类,基于比较的非线性时间类,和非比较的线性时间类.前一类又可以分为四种,交换排序(包括冒泡排序和快速排序),插入排序(包括简单插入排序和希尔排序),选择排序(包括简单选择排序和堆排序)以及归并排序:后者主要包含三种,计数排序,桶排序和基数排序. 总体来说,快排.堆排和归并排序是非线性时间中最快的三种.一般认为,快排的时间效率会比堆排更好.另一方面,快排和堆排都是不稳定的算法,只有归并排序.冒泡排序和插入排

冒泡算法的两种方法(java描述)

(端午放假今天终于回来了,打起鸡血继续) 之前学c的时候学过一种简单的冒泡算法,比较好理解,今天在书上看到了另一种,有些复杂,看了好一会在弄明白. 以数组num[]={8,3,5,4,2,6}为例: 先说以前学的那种方法: 1 int num[]={8,3,5,4,2,6}; 2 for(int i=0;i<num.length;i++){ 3 for(int j=0;j<num.length-i-1;j++ ){ 4 if(num[j]>num[j+1]){ 5 int temp=nu

排序算法之 Java简单快速排序算法

package net.qh.test.sort; import java.util.ArrayList; import java.util.Calendar; import java.util.List; /** * Created by Administrator on 2016/03/01. */ public class SimpleQuick { public int[] sort(int[] arr,int left,int right){ if ( arr == null || a

[转]各种排序算法及其java程序实现

原文:http://blog.csdn.net/t12x3456/article/details/7430700 各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序 冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序 一.冒泡排序(BubbleSort)1. 基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止.2. 排序过程: 设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的