演算法排序之氣泡排序

2021-10-07 19:11:04 字數 2060 閱讀 5696

一、演算法的介紹

對於乙個程式設計師來說,演算法是必不可少的一項技能 同時對你的工作有很大的幫助,甚至可能會給公司帶來很大的利益,所以學好演算法對我們來說至關重要,當然這也是一門令人禿頂的學科

二、演算法的常見型別

我們就隨便舉幾個列子:

氣泡排序、堆排序、希爾排序、歸併排序、選擇排序、插入排序…

在此之前對時間複雜度空間複雜度也是要有一定的理解、以及常見的一些基本知識在此用一張圖來了解一下

3.在此還要了解一下平均複雜度的比較以及相關在公司裡面往往需要考慮到最壞的時間複雜度情況 在此引用了一下相關的資訊更容易直觀的感受

三、氣泡排序

1.氣泡排序(bubble sorting)

算是最基礎的也應當是最簡單的排序之一了,它通過對待排序序列從前向後比較(從下標較小的元素開始)一次比較相鄰的元素的值 若發現逆序則交換 讓值比較大的元素往後面排列 就像水泡一樣 故而叫做氣泡排序

2.相關解釋:

1)首先把**封裝成了乙個方法 對他進行比較 用雙重for迴圈 所以他的時間複雜度應當是n^2

2)我在對這些**做了優化 當他每次進行排序的時候如果前乙個數大於後乙個數的時候就進行排序 如果不是就進行下一次兩個數的比較 記得最後的時候一定要重置 否則會影響後面的比較

3)第二層for迴圈的時候 每次都會確定最後乙個值的位置 所以要讓第二層迴圈的長度減去個第一層的變數i 從而達到確定每一層的後面的數的位置

public class num ;

sortarray(arr);

system.out.println(arrays.tostring(arr));

}

private static void sortarray(int arr) 

}if (!flag) else }}

四、氣泡排序的增強版1)為了加強對資料的直接感受 就建立了日期物件進行比較 當然可能每次比較的時候的時間差可能會不同 是因為這個時間的差是由數字以及系統的硬體來決定的 可能有的快有的慢

2)public class bubblesort ;

int arr = new int[80000];

for (int i = 0; i < 80000; i++)

date date1 = new date();

******dateformat ******dateformat = new ******dateformat("yyyy-mm-dd hh:mm:ss");

string date1str = ******dateformat.format(date1);

system.out.println("排序前的結果是:" + date1str);

//氣泡排序的時間複雜度是o(n^2)

bubblesort(arr);

"此排序,結果是:");

arrays.tostring(arr));

date date2 = new date();

string date2str = ******dateformat.format(date2);

system.out.println("排序後的結果是:" + date2str);

system.out.println(arrays.tostring(arr));

}private static void bubblesort(int arr)

}if (!flag) else }}

}

五、總結

相對來說氣泡排序是經常遇到的也是簡單的相比較其他的排序只要稍微用心還是可以的,每天進步一點點 演算法這東西不能強求 要做的看點會點 理解 會使用 這是我的一點小小的心得

排序演算法之氣泡排序

參考 氣泡排序演算法的運作如下 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。若...

排序演算法之氣泡排序

對於大多數學計算機的人來說,氣泡排序應該都是接觸的第一種排序方式,氣泡排序的排序思想是比較簡單的,它的演算法的是 比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。針對所有的元素重複以上的步驟,除了...

排序演算法之氣泡排序

氣泡排序 bubble sort 是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢 浮 到數列的頂端,...