排序
1. 穩定的排序演算法
2.不穩定的排序演算法
3.比較排序
元素之間的次序依賴它們之間的比較,每個數需要與其他數進行比較才能確定自己的位置。比較典型的比較排序有快速排序,歸併排序,堆排序,氣泡排序。
4非比較排序
非比較排序只要確定每個元素之前的已有元素個數即可,經過一次遍歷便可以解決。
排序
1.氣泡排序
比較相鄰的數字。如果第乙個比第二個大就交換它兩的位置,對每乙個相鄰元素都要進行比較,然後最大的就會在最後乙個位置,再重複進行上面的步驟就可以。
public class maopao1 ;
int i,j;
int temp=0;
int len=a.length;
for( i=0;ia[j+1])
}}
for(i=0;i執行結果為:
1,2,3,4,5,12,21,32,33,42,
其中從小到大的每一步迴圈的詳細步驟如下:
第一輪:2,1,3,4,5,21,32,12,33,42,
第二輪:1,2,3,4,5,21,12,32,33,42,
第三輪:1,2,3,4,5,12,21,32,33,42,
第四輪:1,2,3,4,5,12,21,32,33,42,
第五輪:1,2,3,4,5,12,21,32,33,42,
第六輪:1,2,3,4,5,12,21,32,33,42,
由上面的步驟可以看出在第三輪已經排好序,後面的排序已經沒有必要,所以可以改進**通過新增標誌位使時間複雜度更低。
public class maopao1 ;
int i,j;
int temp=0;
int len=a.length;
for( i=0;ia[j+1])
}for(j=0;j執行結果為:
2,1,3,4,5,21,32,12,33,42,
1,2,3,4,5,21,12,32,33,42,
1,2,3,4,5,12,21,32,33,42,
1,2,3,4,5,12,21,32,33,42,
****************************
1,2,3,4,5,12,21,32,33,42,
我在上面程式中輸出了每一次排序的結果和最後一次排序的結果(星號線下面),這樣可以更加清楚的看出改進版的程式在前三次排好序,在判斷第四次的排序時不滿足條件,跳出迴圈。 氣泡排序以及優化
氣泡排序是新手小白學的第乙個排序方法,複雜度很高。那麼如何在氣泡排序的基礎上對其進行優化?我們給一組資料 9,5,6,7,5,3 第一次冒泡 9和5交換位置 5,9,6,7,5,3 9和6交換位置 5,6,9,7,5,3 9和7交換位置 5,6,7,9,5,3 9和5交換位置 5,6,7,5,9,3...
氣泡排序以及優化
最近需要用到氣泡排序,所以翻出來研究一下。氣泡排序的基礎其實就是元素交換,是一種極其簡單的排序演算法。話不多說,直接上 1 include 2 void bubble sort int arr,int len 315 16 17 1819int main 20 22int len int sizeo...
氣泡排序以及氣泡排序的優化
很早接觸過氣泡排序法,但一直沒有真正的理解,只是為了記住而學習,今天又重新看了一下,其實氣泡排序法第一次排序會把最大的冒到最上面,第二次會把次大的泡冒到最大的後面,一次類推 另外在排序的次數上會逐漸減少。看 void bubble sort int a,int n 其實還可以優化一下,當發現沒有進行...