陣列排序 氣泡排序 插入排序 選擇排序

2021-10-10 16:48:06 字數 1753 閱讀 9180

演算法思想: 從頭開始依次比較兩個相鄰的元素 如果後面乙個比前面乙個大 說明順序不對,則將兩個交換,本次迴圈完成後從頭開始,直到沒有發生交換為止.

給你乙個栗子

對5 2 3 1 4排序

首先 5 和 2 比較 5>2 , 將5 和 2 交換位置 之後的元素按照同樣的方法進行比較交換

第一次比較交換完成後 2 5 3 1 4

第二次比較交換完成後 2 3 5 1 4

第三次比較交換完成後 2 3 1 5 4

第四次比較交換完成後 2 3 1 4 5

至此 第一次迴圈完成 (完成第一次排序)

之後每迴圈一次完成一次排序 直至沒有發生交換 此時意味著排序完成

int

a=newint

;for

(int i =

0; i < a.length-

1; i++)}

} system.out.

println

(arrays.

tostring

(a))

;

演算法思想 :首先在未排序的序列中,找到最大(小)的元素,存放到排序序列的起始位置,然後,再從剩餘的未排序的元素中繼續尋找最大(小)元素,然後放在已排序列的隊尾

給你乙個栗子

還是 5 2 3 1 4 的排序

首先通過一輪迴圈比較找出最小的元素 1 然後將 1 放到第乙個位置 當做已排序列的第乙個元素

此時 1 5 2 3 4

再次迴圈 找出5 2 3 4中最小的勻速為 2 將2 放入 已排序列 的1 之後

此時 1 2 5 3 4

再次迴圈 找出 5 3 4中最小的元素為 3 將 3 放入已排序列 1 2 之後

此時 1 2 3 5 4

再次迴圈 找出 5 4 中最小的元素為 4 將4放入 已排序列1 2 3 之後

此時 1 2 3 4 5

排序完成

int  a=new int;

for (int i = 0; i < a.length-1; i++) }}

system.out.println(arrays.tostring(a));

演算法思想: 每次將乙個待排序的資料按照大小插入到前面已排隊列中,直到資料插入完成

給你乙個栗子

又是 5 2 3 1 4 的排序

用乙個臨時變數儲存要排序的元素 4

記下4 的位置 , 然後讓4 和之前的元素一一比較 尋找出比4大的元素 5 將 4 插入5 的後面

5 之後的元素 統一向後挪一位

此時 4 5 2 3 1

之後 記錄1的位置 然後讓1 和之前的元素一一比較 , 尋找出比1大的元素 4 將 1 插入4 的後面

4 之後的元素 統一向後挪一位

此時 1 4 5 2 3

之後的元素均按此方法一一排序, 直至排序完成

int

a=newint

;for

(int i =

0; i < a.length; i++)}

} system.out.

println

(arrays.

tostring

(a))

;

陣列 氣泡排序 選擇排序 插入排序

package arr 我自己的陣列類 author guosheng public class arrayself public arrayself int chang 新增方法 郭勝 public void insert long value 降序插入 public void insertbys...

氣泡排序,選擇排序,插入排序

氣泡排序,選擇排序,插入排序 小規模的檔案以及基本有序的檔案,插入排序的效能比快速排序的效能更為有效一些,實際上,插入排序通常也做快速排序實現的一部分。1 氣泡排序 packagedatastrut public classbubblesort public voidinsert longvalue...

選擇排序 , 插入排序 , 氣泡排序

編寫 include void println int array,int len 列印給定長度的陣列 printf n void swap int array,int i,int j 交換陣列中兩個位置的元素 void selectionsort int array,int len o n n 對...