java - 递归中使用的 C 代码语句的等效 java 代码语句

标签 java c recursion

下面的代码在C中进行快速排序。我尝试将相同的代码逻辑转换为java。但是,我无法为“partition(&arr[left+1],size-left-1)编写等效的Java代码语句;”在下面的分区函数中。有人可以帮忙吗?

   #include<stdio.h>
    int main()
    {
        int arr[8]={4,8,1,6,3,7,2,5};
        partition(arr,8);//Initial Calling of partition function
        int i;
        for(i=0;i<8;i++)
        printf("%d  ",arr[i]);
        return 0;
    }
     void partition(int arr[],int size)
    {
           if(size<2)
           return;
           int pivot=arr[rand()%size];
           int left=0,right=size-1,temp=0;
           while(left<right)
           {
               while(arr[left]<pivot)
               left++;
               while(arr[right]>pivot)
               right--;
               temp=arr[left],arr[left]=arr[right],arr[right]=temp;//swapping values

           }
        //partitioning and recursive calling
           partition(arr,left);
            partition(&arr[left+1],size-left-1);//The problem is to write an equivalent code for this
                                                //line in Java

    }

最佳答案

要摆脱指针,您需要通过参数指定开始和结束。定义您的功能如下:

void partition(int arr[],int start, int end)

而不是:

int left=0,right=size-1,temp=0;

int left=start,right=end,temp=0;

关于java - 递归中使用的 C 代码语句的等效 java 代码语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20454029/

相关文章:

c - 如何在文件中间插入和删除一些字符?

visual-c++ - 为什么每次递归都使用这么多的堆栈空间?

java - 递归必须解析为类型,但我不知道如何构造它?

Java 线程 hibernate

java - 如何使用 Spring REST 和复杂的查询参数?

c - 尝试写入结构时出现段错误

c - 在位数组中找到第一个零

c - c中的递归多进程程序

Java初学者关于重复

Java数组问题