【发布时间】:2020-10-01 10:33:22
【问题描述】:
显示如何对数组进行排序的 C++ 书籍的代码摘录:
void sort(int array[], int size)
{
for(int i= 0; i < size; i++)
{
int index = findSmallestRemainingElement(array, size, i);
swap(array,i,index);
}
}
int findSmallestRemainingElement(int array[], int size, int index)
{
int index_of_smallest_value = index;
for (int i = index + 1; i < size; i++)
{
if (array[i] < array[index_of_smallest_value])
{
index_of_smallest_value= i;
}
}
return index_of_smallest_value;
}
void swap(int array[], int first_index, int second_index)
{
int temp=array[first_index];
array[first_index] = array[second_index];
array[second_index] = temp;
}
这本书并没有很好地解释这部分,所以我有几个关于函数的问题。
数组的大小和索引有什么区别?
这个问题的答案可能会帮助我更多地理解这些功能,但万一它没有......
findSmallestRemainingElement(int array[], int size, int index) 函数和void swap(int array[], int first_index, int second_index) 函数究竟是如何工作的?
显然我知道每个函数的总体用途,只是我不理解它的一行一行以及代码所做的不同事情。
感谢任何花时间帮助我理解这一点的人!
【问题讨论】:
-
您的第一个问题与函数关系不大。数组具有大小,即条目总数,索引是在数组中找到特定条目的位置。
-
size是数组的大小,例如size对于{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}是10。index指向当前正在考虑的元素。刚刚显示的数组的有效索引是 0 到 9。顾名思义,findSmallestElement从传入的索引开始查找具有最小值的元素的索引。一旦找到,swap交换第一个元素尚未用那个排序,然后逻辑继续下一个元素。 -
一本教你将
int用于你应该扔掉的数组索引变量的书。
标签: c++ arrays sorting selection-sort function-definition