gpt4 book ai didi

java - 为什么我的排序代码无法正常工作?

转载 作者:行者123 更新时间:2023-12-02 09:56:10 24 4
gpt4 key购买 nike

我有一个整数数组,我需要:对前半部分进行升序排序,对另一半进行降序排序。我不知道这是什么原因导致这不能按我想要的方式工作。

        for(i = 0 ; i < array.length/2 - 1 ; i++){
ok = false;
for(j = i ; j < array.length/2 - 1 ; j++){
if(array[j]>array[j+1]){
tempValue = array[j];
array[j] = array[j+1];
array[j+1] = tempValue;
ok = true;
}
}
if(ok == false)
break;
}

for(i = array.length/2 ; i < array.length - 1 ; i++){
ok = false;
for(j = i ; j < array.length - 1; j++){
if(array[j]<array[j+1]){
tempValue = array[j];
array[j] = array[j+1];
array[j+1] = tempValue;
ok = false;
}
}
if(ok == false)
break;
}

Expected result: [4,1,2,5,6,8,7,9] - > [1,2,4,5,9,8,7,6].

Result in my code: [1,2,4,5,8,7,9,6].

最佳答案

您的代码中存在多个错误。当您对另一半数组进行排序时,主要是 ok=false
下面的代码工作正常。

 public class MyClass {
public static void main(String args[]) {
int i,j,tempValue;
int array[]= {4,1,2,5,3,6,8,7,10,9};
boolean ok=true;

for(i = 0 ; i < array.length/2 ; i++){
ok = false;
for(j = i ; j < array.length/2 ; j++){
if(array[j]>array[j+1]){
tempValue = array[j];
array[j] = array[j+1];
array[j+1] = tempValue;
ok = true;
}
}
if(ok == false)
break;
}
for(i = array.length/2 ; i < array.length ; i++){
ok = false;
for(j = array.length/2 ; j < array.length - 1; j++){
if(array[j]<array[j+1]){
tempValue = array[j];
array[j] = array[j+1];
array[j+1] = tempValue;
ok = true;
}
}
if(ok == false)
break;
}

for(i = 0 ; i < array.length ; i++){
System.out.print(array[i]);
}
}
}

关于java - 为什么我的排序代码无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55995642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com