用Java编写静态方法:
public static void sortByFour (int[] arr)
Run Code Online (Sandbox Code Playgroud)
作为参数接收一个充满非负数(零或正数)的数组,并按以下方式对数组进行排序:
(每组中数字的顺序无关紧要)
使用flag-sort,该方法必须尽可能高效.空间复杂度必须为O(1),时间复杂度必须为O(N)或更小.
注意:请勿使用额外的阵列.
我读到了标志排序,但我不知道如何用Java编写它的代码.有人可以帮帮我吗?
根据我读到的内容,有必要在每个桶的数组中找到起始索引和结束索引.那是对的吗?为此,有必要计算数组中有多少数除以4,余数为0,1,2和3.
嗯...
public static void sortByFour(int[] arr) {
int count1 = 0, count2 = 0, count3 = 0, count4 = 0;
int startB1, startB2, startB3, startB4;
for (int i = 0; i < arr.length; i++) {
if (arr[i] % 4 == 0)
count1++;
if (arr[i] % 4 == 1)
count2++;
if (arr[i] % 4 == 2)
count3++;
if (arr[i] …Run Code Online (Sandbox Code Playgroud)