JayMagician 2022-08-18 22:32 采纳率: 28.6%
浏览 48
已结题

java代码改为objective-c

改写代码

将以下java代码改写为oc代码

import java.util.Arrays;
import java.util.Random;
public class quickSort {
public static void main(String[] args) {
  int[] a = new int[10];
        boolean flag = true;
        //random array
        for (int i = 0; i < a.length; i++) {
            Random rd = new Random();
            a[i] = rd.nextInt(10);
        }

        System.out.println("Random Array :");
        System.out.println(Arrays.toString(a));
        System.out.println();
        System.out.println("Quick Sort :");

        //快速排序开始
        quickSort(a, 0, a.length - 1);

        System.out.println(Arrays.toString(a));
}
public static int partition(int[] a, int low, int high){
int pivotkey = a[low]; //将第一个数作为pivotkey
while(low < high){
//交替移动low和high下标
while (high > low && a[high] >= pivotkey){
high--;
}
//找到一个比pivotkey小的值放在左边
a[low] = a[high];

        while (high > low && a[low] <= pivotkey){
            low++;
        }
        //找到一个比pivotkey大的值放在右边

        a[high] = a[low];
    }
    a[low] = pivotkey;

    return low;
}

public static void quickSort(int[] a,int low,int high){
    int pivot;
    if(low < high){
        pivot = partition(a,low,high);
        quickSort(a,low,pivot-1);
        quickSort(a,pivot+1,high);
    }
}

}

  • 写回答

2条回答 默认 最新

  • it_hao528 2022-08-19 00:56
    关注
    获得1.35元问题酬金

    在Controller里边写的,请参考

    - (void)viewDidLoad {
        [super viewDidLoad];
        int a[10];
    //    BOOL flag = YES; // 没用到
        for (int i = 0; i < sizeof(a); i++) {
            a[i] = arc4random() % 10;
        }
        NSLog(@"Random Array :\n");
        for (int i = 0; i < sizeof(a); i++) {
            NSLog(@"%d ", a[i]);
        }
        NSLog(@"\n");
        NSLog(@"Quick Sort :\n");
        [self quickSort:a low:0 high:sizeof(a) - 1];
        for (int i = 0; i < sizeof(a); i++) {
            NSLog(@"%d ", a[i]);
        }
    }
    
    - (int)partition:(int[])a low:(int)low high:(int)high {
        int pivotkey = a[low]; //将第一个数作为pivotkey
        while(low < high){
            //交替移动low和high下标
            while (high > low && a[high] >= pivotkey){
                high--;
            }
            //找到一个比pivotkey小的值放在左边
            a[low] = a[high];
            while (high > low && a[low] <= pivotkey){
                low++;
            }
            //找到一个比pivotkey大的值放在右边
            a[high] = a[low];
        }
        a[low] = pivotkey;
        return low;
    }
    
    - (void)quickSort:(int[])a low:(int)low high:(int)high {
        int pivot;
        if(low < high){
            pivot = [self partition:a low:low high:high];
            [self quickSort:a low:low high:pivot-1];
            [self quickSort:a low:pivot+1 high:high];
        }
    }
    
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月26日
  • 创建了问题 8月18日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器