Быстрая Сортировка(сортировка Хаора) С++

Тема в разделе "C/C++/C#", создана пользователем LastHunter, 7 окт 2011.

Статус темы:
Закрыта.
  1. LastHunter

    LastHunter Гость

    Здравствуйте. Учусь с++. Попытался написать прогу по этому заданию: Напишите функцию, которая сортирует массив с использованием рекурсии.
    Но не работает, ошибку найти не могу, подскажите в чем проблема?
    Код (C++):
    #include "stdafx.h"
    #include <iostream>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
    #include <stdio.h>
    using namespace std;
    //метод половинного деления
    void sortHoor(int A[], int L,int R)
    {
    int i=L, j=R;
    int x=A[(L+R)/2];
    while( i<=j )
    {
    while (A[i]<x)
    i++;
    while (A[j]>x)
    j--;
    if (i<=j)
    {
    int t = A[i];
    A[i] = A[j];
    A[j] = t;
    i++;
    j--;
    }
    }
    if(L<j)
    sortHoor(A, L, j);
    if(i<R)
    sortHoor(A, i, R);
    }

    //функция ввода, здесь проблем нет
    int vvod(int *A, int n)
    {
    int v=0;
    printf("kak budet zadavatsa massiv: 1)random, 2)sam zadam \t");
    scanf("%d", &v);
    if (v==1)
    {
    for (int i=0;i<n;i++)
    A[i]=rand()%21-10;
    }
    if (v==2)
    {
    for (int i=0;i<n;i++)
    scanf("%d", &A[i]);
    }
    if(v!=1 && v!=2)
    printf("error");
    return 0;
    }

    int main()
    {
    int n=0, L=0, R=0;
    printf ("vvedite razmer massiva: n\t");
    scanf ("%d", &n);
    int* A=(int* )malloc(n* sizeof(int ));
    vvod (A,n);
    for (int i=0;i<n;i++)
    {
    printf("%d\t", A[i]);
    }
    L=A[0];
    R=A[n-1];
    sortHoor (A,L,R);
    for (int i=0;i<n;i++)
    printf("%d\t", A[i]);
    system("pause");
    return 0;
    }
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Ты не те параметры функции sortHoor передаешь. Нужно передавать: массив, первый элемент, последний элемент+1.
    Т.е. у тебя должно быть: sortHoor( A, 0, n )
    Работает ли сама sortHoor, не проверял.
     
  3. LastHunter

    LastHunter Гость

    точно, все исправил, все работает =) sortHoor(A,0,n-1)
     
Загрузка...
Похожие Темы - Быстрая Сортировка(сортировка Хаора)
  1. Seriy1994
    Ответов:
    1
    Просмотров:
    1.366
  2. Dock1100
    Ответов:
    6
    Просмотров:
    5.128
Статус темы:
Закрыта.

Поделиться этой страницей