元素功能的其他方式而不是主程序?
void insertionSort(int array[], int number)
{
int j, temp;
for (int i = 1; i<number; i++)
{
j = i;
while (j>0 && array[j - 1]>array[j])
{
temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
j--;
}
}
}
int main()
{
int number = 8;
int array[] = { 2, 7, 5, 6, 4, 8, 1, 3 };
insertionSort(array, 8);
for (int i = 0; i<number; i++)
cout << array[i] << " ";
cout << endl;
system("PAUSE");
return 0;
}
答案 0 :(得分:1)
虽然要排序的数据可以移动到sort函数中,但这样做会创建一个几乎没用的函数 - 因为它只对一组数据进行排序,它相当于{{ 1}}
您的插入排序也有点混乱。插入排序的伪代码通常如下所示:
return {1, 2, 3, 4 5, 6, 7, 8};
答案 1 :(得分:0)
我建议你不要这样做。函数应该是可重用的代码片段。如果您将数组硬编码到函数中,那么该函数只能对函数中的数组进行排序,您必须在函数中编辑数组以对不同的数组进行排序。现在,通过将数组传递给函数,您可以将任何数组传递给函数,并且它将被排序。您甚至可以在同一程序中使用不同的数组多次调用该函数,它们将被排序。
我还要提一下,如果你将数组移动到sort函数中,那么它将不在main()
中,你将无法在main()
中打印出数组。你现在拥有它。