我使用插入排序函数对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);
}
答案 0 :(得分:2)
你可能想打电话
insertionSort(a, SIZE)
答案 1 :(得分:2)
anotacaoDAO.persist(anotacao);
此处您尚未在功能// insertionSort(&a[i], SIZE);
中声明i
,仅在您的for循环中声明。
而对main()
的调用不在您的循环。
传递insertionSort
和(&a)[0]
意味着同样的事情。