1. 程式人生 > >java實現氣泡排序法

java實現氣泡排序法

 一、氣泡排序法

       氣泡排序法的比較方式由第一個元素開始,比較相鄰大小,若大小順序有誤,則對調後再進行下一次元素的比較。如此掃描過一次之後就可確保最後一個元素是位於正確的順序,接著再逐步進行第二次掃描,直到完成所有元素的排序關係為止。氣泡排序是穩定排序法。

二、分析

1. 最壞情況及平均情況需比較n(n-1)/2次,時間複雜度O(n^2)

2.是穩定排序法

3.次排序法適用於資料量小或有部分資料已經過排序的情況

4.空間複雜度為最佳

三、程式碼實現

public class BubbleSort {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int data[] = {6,5,9,3,7,4};
		int tmp;
		int flag;	//設定標誌位,如果又一次掃描沒有資料交換則完成了排序,提前退出
		System.out.println("氣泡排序法:");
		System.out.print("原資料為:");
		for(int i=0;i<data.length;i++)
			System.out.print(data[i]+" ");
		System.out.println();
		for(int i=data.length-1;i>0;i--){	//掃描次數
			flag=0;
			for(int j=0;j<i;j++){	//比較、交換次數
				//比較相鄰兩個大小,是否需要交換
				if(data[j]>data[j+1]){
					flag=1;
					tmp = data[j];
					data[j] = data[j+1];
					data[j+1] = tmp;
				}
			}
			if(flag==0)
				break;
			System.out.print("第"+(data.length-i)+"次掃描後的結果為:");
			for(int k=0;k<data.length;k++)
				System.out.print(data[k]+" ");
			System.out.println();
		}
		System.out.print("排序後的結果為:");
		for(int i=0;i<data.length;i++)
			System.out.print(data[i]+" ");
	}

}

結果:

氣泡排序法:
原資料為:6 5 9 3 7 4
第1次掃描後的結果為:5 6 3 7 4 9
第2次掃描後的結果為:5 3 6 4 7 9
第3次掃描後的結果為:3 5 4 6 7 9
第4次掃描後的結果為:3 4 5 6 7 9
排序後的結果為:3 4 5 6 7 9


相關推薦

Java 實現氣泡排序對陣列進行排序

氣泡排序是交換排序中的一種簡單的排序方法。它的基本思想是對所有相鄰記錄的關鍵字值進行比較,如果是逆序(a[j]>a[j+1]),則將其交換,最終達到有序化。  public class BubbleSort { public void sortArray() { int

java實現氣泡排序

 一、氣泡排序法        氣泡排序法的比較方式由第一個元素開始,比較相鄰大小,若大小順序有誤,則對調後再進行下一次元素的比較。如此掃描過一次之後就可確保最後一個元素是位於正確的順序,接著再逐步進行第二次掃描,直到完成所有元素的排序關係為止。氣泡排序是穩定排序法。 二、

Java中的陣列實現氣泡排序

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

Java 實現快速排序對陣列進行排序

 快速排序是對氣泡排序的一種改進,其排序速度相對較快。 基本思想是:通過一趟排序將要排序的資料分割成獨立的兩部分,其中一部分的所有資料都比另外一部分的所有資料要小,然後再按照這個方法對這兩部分資料分別進行快速排序,整個排序過程可以遞迴進行,以此達到整個資料變成有序序列的目的。最壞情況的

Java——用Java實現氣泡排序,選擇排序,快速排序和二分查詢

在學習C語言時,就有講過這三個排序演算法和二分查詢的演算法。 以下是用Java來實現氣泡排序(Bubble Sort)演算法,選擇排序(Selection Sort),快速排序(Quick Sort)和二分查詢(Binary Search) package pra_07;

Java——實現氣泡排序,選擇排序,快速排序和二分查詢

在學習C語言時,對排序演算法和二分查詢有一定的理解並進行了實現。 不過打算用Java重新實現一下氣泡排序(Bubble Sort),選擇排序(Selection Sort),快速排序(Quick Sort)和二分查詢(binary_search)。 package pra

java實現氣泡排序和選擇排序

氣泡排序:依次比較兩個相鄰的元素,將值大的元素交換至右端,一輪比較過後,最大的元素在最右端。 public class BubbleSort { public static void main(String[] args) { int[] arr

java實現氣泡排序

package 演算法基礎; /** * @author 作者徐子淵 * @version 建立時間:2018年11月7日 下午3:58:50 * 類說明 */ public class Maopaoa

Java語言氣泡排序

首先我們定義一個數組 int[] array = { 11, 55, 22, 53, 87, 13, 66, 90 }; 陣列下表為0~7,共8位數 首先我們對array[0]與array[1]進行比較,如果array[0]>array[1],那麼大的

演算法 -- Java實現氣泡排序(圖解 + 程式碼實現)

排序思想: 相鄰元素兩兩比較,大的往後放,第一次完畢,最大值出現在了最大索引處(每比較完一趟,就選出一個最大值放到了後面),同理繼續可以得到一個排好序的陣列 排序圖解: 排序規

JAVA陣列——氣泡排序(升序)

 public static void sort(int arr[]){  for(int x=0;x<arr.length;x++){   for(int y=0;y<arr.length-1;y++){    if(arr[y]>arr[y+1]){     int t=arr[y]; 

Java實現氣泡排序(一)

原理:每次比較兩個相鄰的元素,將較大的元素交換至右端。 思路:每次氣泡排序操作都會將相鄰的兩個元素進行比較,看是否滿足大小關係要求,如果不滿足,就交換這兩個相鄰元素的次序,一次冒泡至少讓一個元素移動到它應該排列的位置,重複N次,就完成了氣泡排序。 通過一個圖來簡單理解一下

java實現氣泡排序和快速排序

用java實現了氣泡排序和快速排序,冒泡還是比較簡單的,但快速排序採坑了,網上有很多程式碼是有問題的,最後通過分析和實踐,終於弄明白了,分享出來以供大家一起學習~~ 快速排序寫了2種實現方法,原理都是一樣的,快排的平均時間複雜度是O(N*logN) 實現思路

設計一個包含一個interface,三個class的Java 程式,用於完成陣列排序排序任務。其中interface中包含一個sort() 方法。第一個class使用氣泡排序實現interface的

題目:設計一個包含一個interface,三個class的Java 程式,用於完成陣列排序排序任務。其中interface中包含一個sort() 方法。第一個class使用氣泡排序法實現interface的sort()方法;第二個class使用選擇排序法實現interface的sort()方法;

氣泡排序-Java實現

public static void bubbleSort(int[] a) { int temp; for (int i = 0; i < a.length; i++) { for (int j = 0; j < a.length - 1; j++) { if

Java常用的八種排序演算法與程式碼實現(一):氣泡排序、插入排序、選擇排序

這三種排序演算法適合小規模資料排序 ---   共同點:基於比較,時間複雜度均為O(n2),空間複雜度均為O(1)(原地排序演算法)   不同點:插入排序和氣泡排序是穩定的排序演算法,選擇排序不是 ---   穩定排序演算法:可以保持數值相等的兩個物件,在排序之

氣泡排序(BubbleSort)——交換類排序(java實現)

氣泡排序法 從陣列的第一個元素arr[0]開始,兩兩比較arr[0]與arr[0+1],如果前面的數大於後面的數(arr[i]>arr[i+1]),那麼交換兩個元素的位置,把大的數往後移動。這樣

經典的氣泡排序 JAVA實現

publicclass BubbleSort { /** *@paramargs *@authorwu,yaowen*@paramargs */ //initialize the array by Math.random() publicint[] initArray(int arrLen){

java演算法之氣泡排序

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

用python實現選擇排序氣泡排序、插入排序

氣泡排序法 l = [10, 1, 18, 30, 23, 12, 7, 5, 18, 17] for n in range(len(l)-1): for i in range(len(l)-n-1): if l[i] > l[i+1]: