C ++插入排序元素

时间:2015-06-02 17:38:54

标签: c++ sorting insertion-sort

元素功能的其他方式而不是主程序?

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;
}

2 个答案:

答案 0 :(得分:1)

虽然要排序的数据可以移动到sort函数中,但这样做会创建一个几乎没用的函数 - 因为它只对一组数据进行排序,它相当于{{ 1}}

您的插入排序也有点混乱。插入排序的伪代码通常如下所示:

return {1, 2, 3, 4 5, 6, 7, 8};

答案 1 :(得分:0)

我建议你不要这样做。函数应该是可重用的代码片段。如果您将数组硬编码到函数中,那么该函数只能对函数中的数组进行排序,您必须在函数中编辑数组以对不同的数组进行排序。现在,通过将数组传递给函数,您可以将任何数组传递给函数,并且它将被排序。您甚至可以在同一程序中使用不同的数组多次调用该函数,它们将被排序。

我还要提一下,如果你将数组移动到sort函数中,那么它将不在main()中,你将无法在main()中打印出数组。你现在拥有它。