1、氣泡排序
優化前:
public
class
maopao;;
/* 分析:
前乙個與後乙個比較大小,如果前乙個比後乙個大則交換順序,每一次迴圈,得到的就是最大的那個數在末尾
假設陣列元素有2 5 1 6 3
迴圈第0次
2 5 1 6 3
2 1 5 6 3
2 1 5 6 3 (比較了,沒交換)
2 1 5 3 6
五條資料比4次
迴圈第1次
1 2 5 3 6
1 2 5 3 6
1 2 3 5 6
四條資料比3次
迴圈第2次
1 2 3 5 6
1 2 3 5 6
三條資料比兩次
迴圈第3次
1 2 3 5 6
兩條資料比一次
*/int count =0;
//迴圈次數
for(
int i = a.length-
1; i >
0; i--
)for
(int c =
0; c < a.length; c++
) system.out.
println()
;}system.out.
println()
;}system.out.
println()
; system.out.
println
("排序後;");
優化後:
public
class
maopao2;/*
優化分析,如果只需要交換一次即可完成排序,那麼後面的迴圈就是不必要的,所以利用乙個標識
表示如果沒有交換兩個數的順序就表示不需要再繼續比較了
*/int count =0;
boolean flag =
true
;//迴圈次數
for(
int i = a.length-
1; i >
0&&flag ; i--
)for
(int c =
0; c < a.length; c++
) system.out.
println()
;}system.out.
println()
;}system.out.
println
("排序後;");
2、選擇排序
public
class
selectsort
;int a=
;/*分析:
選擇排序:假設第乙個元素是最小的,設為min,將它與後面的元素逐個進行比較,如果發現有比min還小的,就將該元素的下標賦值給a[min]
假設陣列元素有:
需要比四次,即迴圈四次
第0次排序後,與下標為1開始比較
0 1 4 8 2
第1次排序後,與下標為2開始比較
0 1 4 8 2
第2次排序後,與下標為3開始比較
0 1 2 8 4
第3次排序後,與下標為4開始比較
0 1 2 4 8
交換條件:當min != i
*/for(
int i =
0; i < a.length-
1; i++)}
if(min != i)
system.out.
println()
; system.out.
println
("第"
+ i +
"次排序後");
for(
int b =
0; b < a.length; b++)}
}}
day05 陣列 排序
pragma mark 陣列 變數實際上就是乙個容器,陣列也是乙個容器,這個容器可以儲存更多的內容。1.陣列屬於構造型別 2.具有相同資料型別的成員組成一組陣列。3.儲存不同型別的陣列有對應的名稱,如 ios班 安卓版,同理,整數型別 陣列中的成員都是整數,浮點型陣列,陣列中的成員是浮點型。4.陣列...
day05 插入,歸併,快速,選擇排序演算法總結
前面幾天在學習基礎的排序演算法,從o n 級別到o n 級別的演算法,今天就不學習新的排序演算法了,停下來把之前學習的進行鞏固一下,並且好好分析一下這幾種演算法之間的區別,以及他們分別適用於什麼樣的情景。選擇排序的思想正如它的名字,重點就在選擇。怎麼個選擇法呢?選擇排序會從當前陣列中,每次選出乙個最...
遊戲開發Day05
1.建立材質球 2.更改shader屬性 3.新增6張材質圖 window lighting skybox 給目標物體新增自定義指令碼colliderchecked 重寫oncollisionenter方法 bool flag true void oncollisionenter else 1.新建...