I have whole program and it works but not properly. printArray function prints only first element of an Array and it doesn't seem to sort elements. I don't know how to deal with it.
int main(){
int number;
printf( "Give a number of elements:" );
scanf("%d",&number);
printf("Array to sort:");
int* Array = createArray(number);
int sizeArr = sizeof(Array)/sizeof(Array[0]);
int *sortedArr = insertionSort(Array,sizeArr);
puts("");
printf("Sorted array by Insertion Sort:");
printArr(sortedArr,sizeArr);
getch();
return 0;
}
int* createArray(int number){
int *arr =(int*) malloc(sizeof(int*)*number);
srand((unsigned)time(NULL));
for(int i=0;i<number;i++){
arr[i] = 1 + rand()%10;
printf("%d",arr[i]);
}
return arr;
}
int *insertionSort(int *arr,int sizeArr){
int i, j,repArr;
for(i=1;i<sizeArr;i++){
repArr = arr[i];
j=i-1;
while(j>=0 && arr[j]>repArr){
arr[j+1] = arr[j];
j = j - 1;
}
arr[j+1] = repArr;
}
return arr;
}
void printArr(int*arr,int sizeArr){
for(int i=0;i<sizeArr;i++){
printf("%d",arr[i]);
}
puts("");
}