Быстрая сортировка не работает - C (СИ)
Формулировка задачи:
Ребята помогите довести до ума прогу.
Прога сама случайным образом заполняет масив например из 10 положительных чисел в пределах от 0 до 100.
Потом выводит на экран
Затем путем быстрой сортировки прога должна отсортировать числа и разумеется вывести на экран
Но она этого не делает,не могу понять в чем ошибка
=============================================
Вот мой код
Прошу тапками не забрасывать,только учусь
Если не трудно помогите,заранее спасибо
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#define N 10
int litlsort(int* mas,int n);
int rek(int*,int,int);
int flag;
void main ()
{
int mas[10];
litlsort(mas,N);
}
int litlsort(int* mas, int n)
{
int count=0;
srand((unsigned int)time(0));
int temp;
int z=0;
int i,j,k;
for(i=0;i<10;i++)
{
mas[i]=rand()%100+1;
printf("%d\t",mas[i]);
}
printf("\n");
flag=0;
rek(mas,10,count);
for(i=0;i<10;i++)
printf("%d\t",mas[i]);
printf("\n");
printf("\n");
return 0;
}
int rek(int* mas,int n,int count)
{
if(count==0)
return 1;
int i,j;
int temp;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(mas[i]>mas[j])
{
temp=mas[i];
mas[i]=mas[j];
mas[j]=temp;
i=j;
count++;
}
}
if(i==n)
i=i-1;
for(j=i;j>0;j--)
{
if(mas[i]<mas[j])
{
temp=mas[i];
mas[i]=mas[j];
mas[j]=temp;
i=j;
count++;
}
}
}
rek(mas,n,count);
return 0;
}Решение задачи: «Быстрая сортировка не работает»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int iCmp(const void *a, const void *b){
return *(int*)a - *(int*)b;
}
void pArray(int *arr, size_t cnt){
size_t i;
for ( i = 0; i < cnt; ++i )
printf("%02d ", arr[i]);
printf("\n");
}
#define ARR_SIZE 10
int main(void){
int arr[ARR_SIZE], i;
srand(time(NULL));
for ( i = 0; i < ARR_SIZE; ++i )
arr[i] = rand() % 100;
printf("Unsorted:\n");
pArray(arr, ARR_SIZE);
qsort(arr, ARR_SIZE, sizeof(int), iCmp);
printf("Sorted:\n");
pArray(arr, ARR_SIZE);
exit(0);
}