陣列排序和檢查陣列

2021-08-21 10:19:32 字數 593 閱讀 1123

氣泡排序

比較相鄰的元素,

如果第乙個比第二個大,就交換他們兩個。

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數

針對所有的元素重複以上的步驟,除了最後乙個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

public void rotate(int nums, int k)

}選擇排序(leetcode - 189 - rotate array)

在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。

再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。

以此類推,直到所有元素均排序完畢。

public void rotate(int nums, int k)

}判斷陣列為不為空:if(nums == null || nums.length == 0)

return;

保證k的值為正:k = (nums.length + (k % nums.length)) % nums.length;

檢查陣列是否經排序和輪轉得到

1752.檢查陣列是否經排序和輪轉得到 難度簡單6收藏分享切換為英文接收動態反饋 給你乙個陣列nums。nums的源陣列中,所有元素與nums相同,但按非遞減順序排列。如果nums能夠由源陣列輪轉若干位置 包括 0 個位置 得到,則返回true 否則,返回false。源陣列中可能存在重複項。注意 我...

陣列和排序

簡單的 arr array 0,5,1,34,89,12,4 foreach arr as a sort arr 果然是從小到大排序。foreach arr as a 封裝函式氣泡排序 function bubblesort myarr 引用傳遞 if flag flag false print r...

檢查陣列越界等

1 如何定位全域性陣列的寫越界,乙個被大量引用的全域性陣列int a 100 被寫越界了,這樣的情況如何定位?最簡單的方法是,將陣列a 100 改為a 101 然後對訪問a 100 的地方設定斷點進行除錯。因為a 100 應該是沒有人訪問 的,如果訪問就是越界訪問,直接可以定位到該位置。2 在lin...