gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:42:41 24 4
gpt4 key购买 nike

下面的代码在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/

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