gpt4 book ai didi

在 C 中从另一个数组的切片创建一个新数组

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

我是编程新手,正在学习 C。我正在尝试使用递归来解决问题。我找到了很多关于这方面的信息,我可以在我的程序中使用它,但我仍然想尝试一些不同的东西。我的问题如下:我有

bool search(int value, int values[], int n) 
// int value is value to search,
// int values[] is the array in which value is to be found (or not)
// int n is size of array

// some code here and then:

if (middle_number > value)
{
int new_array[] = values[0:middle_index];
// I want my new array to be some slice of values[]
// by declaring a range from 0 to the middle_index
// Is that possible?
search(value, new_array, middle_index);
// Using recursion
}

我可以循环创建新数组,但我认为,我会失去二分搜索的优势(更好的性能)

最佳答案

C 语言不支持整数数组的直接数组切片功能。
要实现二分搜索,您可以传递数组索引来指示要使用的数组部分。

bool search(int value, int values[], int low, int high)

其中 low 是函数代码中使用的较低索引,high 是较高的数组索引。您甚至可以创建 int value[] 作为全局变量,然后使用搜索函数,

bool search(int value,int low, int high)

您可以浏览网络,并使用此方法获得二分搜索实现,因为它是实现二分搜索的常用方法。

关于在 C 中从另一个数组的切片创建一个新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22357451/

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