1. 程式人生 > >Java陣列排序-氣泡排序

Java陣列排序-氣泡排序

Java的陣列排序有多種方式,其中有氣泡排序,選擇排序,插入排序等,這一篇說一下氣泡排序的實現。

氣泡排序其實是將一個數組的相鄰兩個元素兩兩比較,大的元素往後放,當第一次比較完畢後最大的元素就會排到陣列的最右邊,這樣同理繼續比較下去,就會得到一個排序好的陣列。

它是有規律的:

1 每一次比較完畢後相對最大的值都會排到陣列的右邊

2 每一次比較後,下一次比較就會減少一個元素的比較

3 一共需要比較陣列長度的length-1次

畫一張圖幫助理解一下

-------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

寫一個例子執行下

public class BubbleDemo {
	public static void main(String[] args) {
		int[] arr = new int[] { 2, 34, 56, 43, 45 };

		int[] arr2 = getBubble(arr);
		for (int a : arr2) {
			System.out.print(a + " ");
		}
	}

	public static int[] getBubble(int[] arr) {
		// 氣泡排序
		for (int i = 0; i < arr.length - 1; i++) {
			for (int j = 0; j < arr.length - 1 - i; j++) {
				if (arr[j] > arr[j + 1]) {
					int temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
		}
		return arr;
	}
}


相關推薦

java陣列以及氣泡排序實現過程

陣列: 1.什麼是陣列 程式:由人事先寫好的,讓電腦做的 程式=演算法+資料結構 一個好的演算法+資料結構=優秀的程式 演算法:變數,運算子,分支,迴圈 資料結構:陣列是一種最基本的資料結構   集合 陣列可以理解為一個容器  水杯=容器    儲存水 陣列

Java陣列氣泡排序氣泡排序優化

氣泡排序: 思路: int[] arr={3,4,2,6,1}; 1.第一次排序,從索引[0]開始,依次兩兩比較。索引[0]與[1]比,[1]與[2]比,[2]與[3]比…… if(arr[0]<arr[1]){

Java實現陣列氣泡排序

注意:     1 迴圈圈數越來越少     2 每次迴圈比較次數越來越少     3 每次比較都從索引0和索引1開始 public class BubbleSort{ public static void m

Java中的陣列實現氣泡排序

/** * 不使用Arrays的sort方法來排序無規則陣列; * * */ public class MaoPaoDemo { public static void main(String[] args) { int [] arrs = {9,5,8,10,

Java語言陣列排序——氣泡排序,選擇排序,快速排序,直接插入排序

今天主要來說下陣列排序的問題,主要介紹的有氣泡排序,選擇排序,快速排序,直接插入排序四種排序: 1.氣泡排序: 主要有原理圖與程式碼解釋; 原理圖借鑑一位老師畫的圖,嘻嘻,老師畫的圖比較好看,就拿來借鑑下: 2.選擇排序 3.快速排序 4.直接插

Java陣列排序-氣泡排序

Java的陣列排序有多種方式,其中有氣泡排序,選擇排序,插入排序等,這一篇說一下氣泡排序的實現。 氣泡排序其實是將一個數組的相鄰兩個元素兩兩比較,大的元素往後放,當第一次比較完畢後最大的元素就會排到陣列的最右邊,這樣同理繼續比較下去,就會得到一個排序好的陣列。 它是有規律

Java 案例六 奇數求和 水仙花 列印乘法口訣 列印陣列 逆序輸出陣列 選擇排序 氣泡排序 折半查詢

 1.奇數求和 /* 編寫程式求1+3+5+...+99的和值 有一個數據從0變到100 迴圈 int i = 0; ,+100 ++ 從0-100,範圍內找到奇數 數%2==1 奇數 所有的奇數求和 需要變數,儲存奇數的求和 實現步驟: 1.程式中可以使用的資料

java實現陣列氣泡排序、選擇排序程式碼

陣列排序之氣泡排序: 相鄰元素兩兩比較,大的往後放,第一次完畢,最大值出現在了最大索引處 package cn.lgt.sortarray; public class MaoPaoSort {

Java 案例六 奇數求和 水仙花 列印乘法口訣 列印陣列 逆序輸出陣列 選擇排序 氣泡排序 折半查詢

 1.奇數求和 /* 編寫程式求1+3+5+...+99的和值 有一個數據從0變到100 迴圈 int i = 0; ,+100 ++ 從0-100,範圍內找到奇數 數%2==1 奇數 所有的奇數求和 需要變數,儲存奇數的求和 實現步驟: 1.程式中可

Java學習路程之陣列排序(氣泡排序、選擇排序、折半查詢)

一.陣列 1.一維陣列:儲存一組相同資料型別的元素. 2.陣列的三種宣告方式 array為陣列的命名 資料型別表示的是陣列中元素的資料型別 int[] array = new int[陣列長度]; int[] array =

JNI之c/c++返回中文給java 亂碼問題以及java陣列在c排序

c/c++返回中文給java時會亂碼,因為java和c/c++的編碼格式不一樣,java的utf-16,c/c++是utf-8,所以在返回中文字元的時候,包裝成gb2312返回。 具體見如下部落格連結: jni互動中文亂問題分析 public class CodeTest {

Java基礎 String 裸暴力演算法- 五個小練習 Java陣列直接選擇排序、sort()排序

  之間的部落格,承上啟下:    Java基礎 String/StringBuff 常用操作方法複習/記憶體分析 Java陣列直接選擇排序、sort()排序 Java基礎 String 演算法 - 五個練習題目要求: /** 1.模擬一個trim方法,去除

Java經典演算法氣泡排序

氣泡排序、 實現原理: 比較兩個相鄰位數的元素,將較大的元素交換到右端或左端,最大的元素就在最右端或是最左端;     從小-->大   1 public class MaoPao { 2 3 public static void

java演算法之氣泡排序

氣泡排序法 口訣: 外層迴圈 0到n-1 //控制比較輪數 n 表示元素的個數 內層迴圈 0到n-i-1 //控制每一輪比較次數 兩兩比較做交換       氣泡排序的優點:每進行一趟排序,就會少比較一次,因為每進行一

Java中的氣泡排序

import java.lang.reflect.Array; import java.util.Arrays; import java.util.Random; /**  * 生成一個[10,20]之間的隨機長度,裡面的元素是[10,50]之間的陣列  * 氣泡排序 &nb

陣列氣泡排序、選擇排序

一、一維陣列 程式: 結果: 總結: (1)12行的結果為40:系統會為一個數組分配一段連續的儲存空間。每個資料元素佔用的位元組數,就是基型別的位元組數,一個元素佔4個位元組。int array1[10];由於陣列1是int型的(佔四個位元組),而且陣列1裡有

java實現數排序-氣泡排序

一、原理: 氣泡排序----比較相鄰的兩個數,將較大的數放在右端。 N個數氣泡排序—需要進行(N-1)趟排序,第i趟需做(N-i)次比較。 第1趟:比較length個數後,排出最大數。 第2趟,最大數不做比較,比較length-1個數後,排出第二大數 … 二、

Java和C氣泡排序

Java 示例程式碼: public class test { public static void main(String[] args) { String str = "321dca5"; //需要排序的字串 char[] new_string; new_str

Java陣列3種排序方法

一、陣列封裝好的排序方法              public static void main(String[] args) {         i

OJ陣列——雙向氣泡排序

/* * Copyright (c) 2014, 煙臺大學計算機學院 * All rights reserved. * 檔名稱:test.cpp * 作    者:李曉凱 * 完成日期:2015年 1