gpt4 book ai didi

algorithm - 将数字数组按升序排序并找到数字在列表中的位置

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:04:53 24 4
gpt4 key购买 nike

我生成了一个未排序的值数组,我想将其按升序排列并确定最后一个数字的新位置。

我之前曾在其他较小的输入上成功尝试过,但卡在了最后一个,其中列表包含 1824300 个值,而终端根本不会运行排序算法...

#include <stdio.h>

int main(void)
{
signed value = 16239, num = 1824300, i, j;
signed temp;
signed arr[num];

arr[0] = value;
printf("Your initial array is:\n");
printf("%i\n", arr[0]);

for (i = 1; i < num; i++)
{
value = (value*31334)%31337;
arr[i]= value;
printf("%i: ", i);
printf("%i\n", arr[i]);
}

// Insertion sort
for(i = 1; i < num; i++)
{
j = i;
temp = arr[j];

while((j > 0) && (arr[j - 1] > temp))
{
arr[j] = arr[j -1];
arr[j - 1] = temp;
j--;
}
}
insertion sort //

printf("Your sorted array is:\n");

for(i = 0; i < num; i++)
{
printf("%i: ", i);
printf("%i\n", arr[i]);
}

return 0;
}

有人可以帮助我吗?附言我对编程完全陌生,所以我的代码可能非常低效和困惑,对此深表歉意!非常感谢!!!

最佳答案

下面基本上是我最后所做的。我只是插入了一个简单的计数器!它工作得很好......感谢所有试图提供帮助的人。您的回答对我很有值(value),我仍在学习如何将算法实现为代码,这对我来说有点困难,因为我之前没有编程经验 :((( 尽管这些算法一点也不难理解...

signed count;
count = 0;
for (i = 0; i < num; i++)
{
if (arr[i] <= value)
{
count = count + 1;
}
}
printf("This is the index of your output in a sorted list: \n");
printf("%i\n", count);

关于algorithm - 将数字数组按升序排序并找到数字在列表中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46975465/

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