Java演算法 氣泡排序

2021-08-13 07:26:07 字數 1406 閱讀 2865

氣泡排序bubble sort:

氣泡排序的基本思想:

將被排序的記錄的關鍵字將被排序的記錄的關鍵字垂直排列,首先將第1個記錄的關鍵字與第2 個記錄的關鍵字進行比較,若前者大於後者.則交換兩個記錄,然後比較第2個記錄與第3個記錄的關鍵字,依次類推,直到第n 1個記錄與第個記錄的關鍵字比較為止。上述過程稱起泡排序。其結果使得關鍵字最大的記錄被安排在最後乙個記錄的位置上。然後進行第2隨起泡排序,對前n 1個記錄進行同樣的排序,使得關鍵字次大的記錄被安排在第1個記錄的位置上。一般地,第i趟起泡排序從第1個記錄到第i個記錄依次比較相鄰兩條記錄的關鍵字,並在逆序時交換相鄰記錄,其結果使得是這個記錄中關鍵字最大的記錄被交換到第i 個記錄的位置上。整個排序過程需要k(1< k< n -1)趟起泡排序,判斷起泡排序結束的條件是在一趟起泡排序的過程中,沒有進行過記錄交換的操作。在起泡排序的過程中,關鍵字較小的記錄像水中的氣泡逐漸向上飄浮,而關鍵字較大的記錄好像石塊逐漸向下沉,每一次有一塊最大的石塊沉到底。 垂直排列,首先將第1個記錄的關鍵字與第2 個記錄的關鍵字進行比較,若前者大於後者.則交換兩個記錄,然後比較第2個記錄與第3個記錄的關鍵字,依次類推,直到第n 1個記錄與第個記錄的關鍵字比較為止。上述過程稱起泡排序。其結果使得關鍵字最大的記錄被安排在最後乙個記錄的位置上。然後進行第2隨起泡排序,對前n 1個記錄進行同樣的排序,使得關鍵字次大的記錄被安排在第1個記錄的位置上。一般地,第i趟起泡排序從第1個記錄到第i個記錄依次比較相鄰兩條記錄的關鍵字,並在逆序時交換相鄰記錄,其結果使得是這個記錄中關鍵字最大的記錄被交換到第i 個記錄的位置上。整個排序過程需要k(1< k< n -1)趟起泡排序,判斷起泡排序結束的條件是在一趟起泡排序的過程中,沒有進行過記錄交換的操作。在起泡排序的過程中,關鍵字較小的記錄像水中的氣泡逐漸向上飄浮,而關鍵字較大的記錄好像石塊逐漸向下沉,每一次有一塊最大的石塊沉到底。 

* @description: 氣泡排序類

* @date: 2023年12月9日

*/public class bubblesort

}if(!exchange)}}

}氣泡排序的時間複雜度分析:

泡排序演算法的最好情況是記錄已全部排好序,這時,第一次迴圈時,因沒有資料交換而退出。氣泡排序演算法的最壞情況是記錄全部逆序存放,這時,迴圈n-1次.比較和移動次計其如下:

總比較次數:=(n-1)+(n-2)+(

n-3)+....+3+2+1=n(n-1)/2;

總移動次數:=3n(n-1)/2;

總結:因此,氣泡排序演算法是階o(n²)的演算法,這就意味著執行演算法所用的時間會按照陣列大小的增加而成二次方的增長。

java 排序演算法 氣泡排序

氣泡排序 感覺和選擇排序有點像,每迴圈一次,就能得到迴圈佇列中最小的值,按照江湖規矩,輪武功排行,幾個人先選出來兩個進行比試,贏的和下乙個人接著比,每次都選出來贏的那個人,和下乙個人進行比較,最終選出來的就是武功最nb的那個,那麼他就是老大了,老 出來後,就按照這個辦法,在剩餘的兄弟裡面接著比武吧,...

java演算法 氣泡排序

氣泡排序 它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。氣泡排序 把要排序的陣列截取出一部分,形成新的陣列。新陣列的長度從1開始,每次依次增加1。對新陣列內部相鄰的兩個元素進行比較,如果前面...

Java氣泡排序演算法

在所有的演算法中,氣泡排序演算法是乙個比較基礎的排序的演算法,我的演算法之路,也由此開始。首先來看正確的語法及輸出 public class test01 for int i 1 ia j 1 system.out.print 排序後的陣列為 另乙個正確的例子 public class test01...