Быстрая сортировка не работает - 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);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы