Vlollipop 2022-11-22 16:11 采纳率: 50%
浏览 10

java的数字黑洞6147

img

img

对于已知从小到大和从大到小的数,如何用while进行排序,这个有思路,但不知怎么代,

  • 写回答

1条回答 默认 最新

  • 牵着蜗牛去散步_ 2022-11-22 17:37
    关注

    从你贴出来的代码来看,逻辑是输入一个4位数,然后对组成这个4位数的每个数字进行排序,归根到底就是一个排序问题,用while循环的话就可以使用快速排序
    下面是代码

      public void quickSort(int[] nums, int low, int high) {
    
            if (low < high) {
                int index = partition(nums, low, high);
                quickSort(nums, low, index - 1);
                quickSort(nums, index + 1, high);
            }
    
        }
    
        public int partition(int[] nums, int low, int high) {
    
            int pivot = nums[low];
            int start = low;
    
            while (low < high) {
                // while (low < high && nums[high] <= pivot) // 从大到小
                while (low < high && nums[high] >= pivot)
                    high--;
                //     while (low < high && nums[low] >= pivot) // 从大到小
                while (low < high && nums[low] <= pivot)
                    low++;
                if (low >= high)
                    break;
                swap(nums, low, high);
            }
            //基准值归位
            swap(nums, start, low);
            return low;
        }
    
        public void swap(int[] nums, int i, int j) {
            int temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
        }
    
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 11月22日

悬赏问题

  • ¥20 搭建三相栅极电路后高侧浮动地VS存在电容特性
  • ¥20 云卓h12pro 数传问题
  • ¥20 请问有人知道怎么用工艺库里面的sdb文件通过virtuoso导出来library里面每个cell的symbol吗?
  • ¥20 海思 nnie 编译 报错
  • ¥50 决策面并仿真,要求有仿真结果图
  • ¥15 springboot接入微信支付SDK
  • ¥50 大区域的遥感影像匹配 怎么做啊
  • ¥15 求解答:pytorch跑yolov8神经网络受挫
  • ¥20 Js代码报错问题不知道怎么解决
  • ¥15 gojs 点击按钮node的position位置进行改变,再次点击回到原来的位置