排序: 是計算機內經常進行的一種操作,其目的是將一組「無序」的記錄序列調整為「有序」的記錄序列。分內部排序和外部排序,若整個排序過程不需要訪問外存便能完成,則稱此類排序問題為內部排序。反之,若參加排序的記錄數量很大,整個序列的排序過程不可能在記憶體中完成,則稱此類排序問題為外部排序。內部排序的過程是乙個逐步擴大記錄的有序序列長度的過程。常用的排序總結
穩定性:
排序:
比較和非比較排序
1.冒泡
(1)定義
定義:它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從a到z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。(2)思路描述這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端(公升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名「氣泡排序」。
1.比較每一對相鄰的數,如果前乙個大於後乙個則交換它們的位置。
temp = a[i]
;a[i]
= a[j]
;a[j]
= temp;
至此交換完成。最後乙個數即為最大的資料。
2.針對每乙個資料都進行以上操作。3.重複1~2直到排序完成。
(3)圖形顯示
(4)**實現
public
void
bubble
(int
arr)}}
long endtime = system.
nanotime()
; system.out.
println(+
(endtime-starttime)
+"ns"
+"比較次數:"
+k);
}
public
void
bubble1
(int
arr)}}
long endtime = system.
nanotime()
; system.out.
println(+
(endtime-starttime)
+"ns"
+"比較次數:"
+k);
}
(5)演算法分析最佳情況:t(n) = o(n)
最差情況:t(n) = o(n^2)
平均情況:t(n) = o(n^2)
Java實現氣泡排序演算法
一 基本思路 氣泡排序是一種簡單的交換類排序。其基本思路是,從頭開始掃瞄待排序的元素,在掃瞄過程中依次對相鄰元素進行比較,將關鍵字值大的元素後移。每經過一趟排序後,關鍵字值最大的元素將移到末尾,此時記下該元素的位置,下一趟排序只需要比較到此位置為止,直到所有元素都已有序排列。一般地,對n個元素進行氣...
Java實現氣泡排序演算法
氣泡排序是一種簡單的交換類排序。其基本思路是,從頭開始掃瞄待排序的元素,在掃瞄過程中依次對相鄰元素進行比較,將關鍵字值大的元素後移。每經過一趟排序後,關鍵字值最大的元素將移到末尾,此時記下該元素的位置,下一趟排序只需要比較到此位置為止,直到所有元素都已有序排列。一般地,對n個元素進行氣泡排序,總共需...
Java實現氣泡排序演算法
一 基本思路 氣泡排序是一種簡單的交換類排序。其基本思路是,從頭開始掃瞄待排序的元素,在掃瞄過程中依次對相鄰元素進行比較,將關鍵字值大的元素後移。每經過一趟排序後,關鍵字值最大的元素將移到末尾,此時記下該元素的位置,下一趟排序只需要比較到此位置為止,直到所有元素都已有序排列。一般地,對n個元素進行氣...