hounangogogo 2015-08-25 08:19 采纳率: 100%
浏览 2244
已采纳

关于java 快速排序问题 这个输出报错 我认为 while 有问题 求大神指导

package QuickSort;

import java.util.ArrayList;

public class QuickSort {

public static void main(String[] args) {

    ArrayList<Integer> lists = new ArrayList<Integer>();

    lists.add(5);
    lists.add(2);
    lists.add(6);
    lists.add(1);
    lists.add(7);
    lists.add(3);
    lists.add(4);


    //System.out.println(isOdd(3));
    //System.out.println(isOdd(4));

    System.out.println(lists);
    //System.out.println(getMiddle(lists));
    //System.out.println(lists.indexOf(getMiddle(lists)));
    System.out.println(sort(lists));


}

//
public static boolean isOdd(int i) {
    if(i % 2 == 0) {
        return false;
    }
    else {
        return true;
    }

}

//
private static Integer getMiddle(ArrayList<Integer> array) {
    if (isOdd(array.size())) {
        return array.get(array.size()/2);
    }
    else {
        return array.get(array.size()/2);
    }           

}


private static ArrayList<Integer> sort(ArrayList<Integer> array) {
    int mid = getMiddle(array);
    int midIndex = array.indexOf(mid);
    int i = 0;
    int j = array.size()-1;
    int temp = array.get(0);
    while(i!=midIndex || j !=midIndex) {
        if(array.get(i) < mid) {
            i++;
        }
        else {
            if (array.get(j)>mid) {
                j--;
            }
            else {
                array.set(i, array.get(j));
                array.set(j, temp);
                i++;
                j--;
                temp = array.get(i);
            }
        }
    }
    return array;

}

}

  • 写回答

11条回答 默认 最新

  • Tiger_Zhao 2015-08-25 08:39
    关注

    一、交换部分错了

                    temp = array.get(i);
                    array.set(i, array.get(j));
                    array.set(j, temp);
                    i++;
                    j--;
    

    二、分成大小两部分之后的递归呢?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名