gpt4 book ai didi

c++ - 让冒泡排序在 C++ 中工作

转载 作者:行者123 更新时间:2023-11-28 07:01:02 26 4
gpt4 key购买 nike

else if (selection == 16)
{
int bubbleCount = 0;
for(bubbleCount = 0; bubbleCount < arraySize; bubbleCount++)
{
if (theArray[bubbleCount] > theArray[bubbleCount+1])
{
swap(theArray[bubbleCount], theArray[bubbleCount+1]);
}
}
}

为了澄清这里发生了什么:

  • selection 是我的变量,用于选择在我的程序中完成的操作。在此特定实例中,冒泡排序选择是 16

  • arraySize 是用户指定的数组大小。

  • bubbleCount 只是典型 for 循环数组使用的任意名称。

我认为我的逻辑没问题。应该发生的是数组从我的计数开始并将它与数组中的相邻元素进行比较。如果它更大,他们交换。 for 循环应该执行 arraySize 迭代。当我用一组随机生成的数字测试它时,它无法完全排序。我哪里搞砸了?

最佳答案

将代码片段改成下面的方式

// enum { BubbleSort = 16, /*...*/ }

else if ( selection == BubbleSort )
{
for( int last = arraySize; last > 1 ; --last )
{
for ( int first = 1; first < last; ++first )
{
if ( theArray[first] < theArray[first - 1] )
{
swap( theArray[first], theArray[first - 1] );
}
}
}
}

关于c++ - 让冒泡排序在 C++ 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22466992/

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