气泡排序帮助在C。源代码中基于行的问题
我的问题是:气泡排序帮助在C。源代码中基于行的问题,c,arrays,prototype,C,Arrays,Prototype,我的问题是: 第28行:为什么num-i-1? 第30行:if条件意味着什么?特别是,为什么j+1 如何随机显示已排序数组的元素?没有Asc或Dsc订单 显示的随机数如何不同 因为我们要在索引中添加一个,所以不能循环到num-i,否则我们会过冲 这将在索引中添加一个元素,以查看并比较j:th和(j+1):th元素 那没有多大意义。如果要随机显示,请不要对其进行排序。“洗牌”是对数组进行随机化的术语 不知道你在说什么 1) num是要排序的数字数。i是已排序的元素数,1是将要排序的元素数。 在循环
num-i-1?
if
条件意味着什么?特别是,为什么j+1num-i
,否则我们会过冲j
:th和(j+1
):th元素我不明白那个问题 第30行代码正在执行
j+1
这就是为什么条件是j数组[j])
{
温度=阵列[j];
数组[j]=数组[j-1];
阵列[j-1]=温度;
}
}
}
如果您想以随机方式显示数组,则无需排序!!因为数组中已经没有顺序
您可以编写自己的逻辑来随机显示数组元素。用输入数组中的值编写一堆文件。使用气泡排序算法手动排序。请注意您的(手动)实现与该站点中的C程序实现之间的差异(或相似之处)。就在这里,谢谢@pmgWhy给他投票?他学会了C.@peace_,在代码中我补充了答案,这是简单的逻辑,你们可以用自己的方式改变逻辑。冒泡排序有很多种方法。当你提到“索引”时,你的意思是什么?@peace\u in\u code index是一个术语,常用于正在访问的数组中的位置。因此在表达式
array[i]
中,i
是索引。由于这个原因,方括号[]
通常被称为数组索引运算符。C标准使用术语“数组下标”,但您经常听到它被称为“索引”。在这种情况下,if
conditionj
不能大于j+1
对吗?那么语句是如何执行的呢?我可能遗漏了一些东西。@peace\u在代码中比较的不是j
和j+1
,而是使用它们来索引到数组中。比较的是这两个位置的数组内容。现在我知道了。问题3)和问题4)是相同的,因此不必担心。我在另一个程序中使用了一个rand()
函数来显示随机值。我如何为它设定种子?每次运行时,它都会给我相同的值。使用什么函数?我更喜欢以j=0
的形式启动for
循环,但这很有见地。@peace\u in\u code这取决于您的选择,但两者都可以正常工作。
for (i = 0; i < num; i++)
{
for (j = 1; j < (num - i); j++)
{
if (array[j-1] > array[j])
{
temp = array[j];
array[j] = array[j-1];
array[j-1] = temp;
}
}
}