DAY05(冒泡,選擇排序)

2021-10-10 16:37:43 字數 2295 閱讀 9765

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.新建...