在数组上调用sort函数c ++

时间:2015-05-05 00:01:30

标签: c++ arrays sorting

我使用插入排序函数对5000升序数组进行排序。当我将数组的地址传递给函数调用时,我得到[错误]名称查找' i'因ISO而改为'范围[-fpermissive]。也许我应该使用矢量,但我不熟悉它们。也许我编错了什么?

#include <iostream>
#define SIZE 5000 //array size
using namespace std;

void insertionSort(int arr[], int length) {
      int i, j, tmp;
      for (i = 1; i < length; i++) {
            j = i;
            while (j > 0 && arr[j - 1] > arr[j]) {
                  tmp = arr[j];
                  arr[j] = arr[j - 1];
                  arr[j - 1] = tmp;
                  j--;
            }
      }
}

int main() {
    int a[SIZE];
    int count = 1;

    for(int i=0; i<SIZE; i++) {
        a[i] = count;
        count++;
    }

    for(int i = 0; i < SIZE; i++) {
        printf("%d\t", a[i]);
    }

    insertionSort(&a[i], SIZE);
}

2 个答案:

答案 0 :(得分:2)

你可能想打电话

 insertionSort(a, SIZE)

答案 1 :(得分:2)

anotacaoDAO.persist(anotacao); 此处您尚未在功能// insertionSort(&a[i], SIZE);中声明i,仅在您的for循环中声明。
而对main()的调用不在您的循环。

传递insertionSort(&a)[0]意味着同样的事情。