一财岔、冒泡排序的基礎(chǔ)算法
- 如有一個(gè)數(shù)列有N(5)個(gè)元素,則至多需要N-1(4)趟循環(huán)才能保證數(shù)列有序
2.每一趟循環(huán)都從數(shù)列的第一個(gè)元素開(kāi)始比較夕膀,依次比較相鄰的兩個(gè)元素须床,比較到數(shù)列的最后
3.如果前一個(gè)元素大于后一個(gè)元素,則使用第三變量交換
圖片
原理
圖片
二吨枉、冒泡排序的優(yōu)化算法
基礎(chǔ)算法的缺點(diǎn)
1.每一趟比較都要比較到數(shù)組的最后伪冰,沒(méi)有必要誓酒,只要比較到無(wú)序數(shù)列即可
for(int j=0
i<數(shù)組名.length-1
j++){
i. …..
}
i j<?
0 j<4
1 j<3
2 j<2
3 j<1
j<N-1-i;
2.不管是否有序,都要進(jìn)行N-1趟循環(huán)
如何判斷有序贮聂?比較了一趟靠柑,沒(méi)有發(fā)生交換寨辩,就是有序
定義一個(gè)boolean類型的變量flag,默認(rèn)有序true;發(fā)生交換,置為false歼冰,一趟循環(huán)結(jié)束后靡狞,根據(jù)flag的值判斷是否有序,有序隔嫡,則退出循環(huán)
3.int temp 每次比較的時(shí)候都要給temp分配空間甸怕,比較完畢后翻放空間
所有的比較都使用一個(gè)temp變量,同一個(gè)空間畔勤,將temp變量提取到大循環(huán)外
圖片