Java 在不使用现有算法或排序技术的情况下对整型元素进行排序
如果我在数组中有1个核心整数元素,在随机方式中只有0,1我想在不使用现有算法的情况下对该数组进行排序。或排序方法,并使用最小迭代 我怎么能那样做。。Java 在不使用现有算法或排序技术的情况下对整型元素进行排序,java,c,Java,C,如果我在数组中有1个核心整数元素,在随机方式中只有0,1我想在不使用现有算法的情况下对该数组进行排序。或排序方法,并使用最小迭代 我怎么能那样做。。 请帮助我。方法1:计算所有0,然后从前面设置,然后设置1的大小-计数(0)次。 方法2:从阵列的两端开始,从左到右交换1到0,直到到达阵列的中间 while (begin < end) { // If find 0 at left, keep moving if (0 == toSort[begin]) {
请帮助我。方法1:计算所有0,然后从前面设置,然后设置1的大小-计数(0)次。
方法2:从阵列的两端开始,从左到右交换1到0,直到到达阵列的中间
while (begin < end) {
// If find 0 at left, keep moving
if (0 == toSort[begin]) {
begin++;
}
// if a 1 occurs at left, move from right until find a zero
else if (1 == toSort[end]) {
end--;
}
// Here we found a 1 at left and 0 at right, so swap
else {
toSort[begin] = 0;
toSort[end] = 1;
}
}
while(开始<结束){
//如果在左侧找到0,请继续移动
如果(0==toSort[begin]){
begin++;
}
//如果1出现在左侧,则从右侧移动直到找到零
else if(1==toSort[end]){
结束--;
}
//在这里,我们发现1在左边,0在右边,所以交换
否则{
toSort[begin]=0;
toSort[end]=1;
}
}
时间复杂度:O(n)。也许你可以计算0和1的数量,然后创建一个新的数组,使用相同数量的0和1,但选择添加它们的顺序。我不理解“1核心整数元素”。你能澄清一下吗?我想在不使用现有算法的情况下对这个数组进行排序:不使用算法似乎很困难,或者请告诉我们什么是适合你的算法。@pbabcdefp,我猜是“1百万整数元素”@CoolGuy谢谢。我以前从来没听说过crore这个词。你的问题不太清楚。我假设您有一个整数数组,每个整数是0或1,没有其他数据。要“排序”,只需计算数组中0和1的数量,例如N个0和M个1。然后通过写出N个零和M个一来覆盖数组(反之亦然,取决于您是想按升序还是降序“排序”)。这是一个O(n)算法:一次通过计数,一次通过重写。