Быстрая сортировка не работает - 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); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д