2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Быстрая сортировка
Сообщение12.09.2008, 15:43 
Аватара пользователя


01/12/07
172
Помогите пожалуйста разобраться с ошибкой в программе.Откуда-то в отсортирванном массиве появляется число 6(даже если не вводилось)!!!
Код:
#include<stdio.h>
#define n 6
void qsrt (int* v, int l, int r){
 
  if (l>=r) return;                      // Условие выхода из рекурсии
  int l1, r1, m;
  int tmp;
     l1 = l; r1 = r;                 // Запомнить начальное значение границ
  m = (r+l)/2;                      // вычисление опорного элемента

  while(l<r){                      //  разделение массива
    while ((v[l]<=v[m])&&(l<m)) l++;     // сдвиг левой границы
    while ((v[r]>=v[m])&&(r>m)) r--;               // сдвиг правой границы

    tmp = v[l];                     // обмен граничных элементов
    v[l] = v[r];
    v[r] = tmp;
   if( l==m) m = r;                // обновление индекса опорного элемента в случае
   if (r==m) m = l;                //  если опорный элемент участвовал в обмене
  }
  qsrt(v, l1,m-1);                  //  сортировка полученных массивов
  qsrt(v, m+1, r1);
}   
void print(int* m){                  //вывод отсортированого массива
    for(int i=0;i<n;i++){
      printf(" array %d\n",m[i]);
   
      }
   }
   void main(){
   int i;
   int a[n];
   for(i=0;i<n;i++){
      printf("enter %d element of array\n",i);
      scanf("%d",&a[i]);
      }
   qsrt(a,0,n);
   print(a);
}



Заранее благодарен

 Профиль  
                  
 
 
Сообщение12.09.2008, 15:53 
Заблокирован
Аватара пользователя


07/08/06

3474
Лень выискивать ошибку :)
Сравните свой алгоритм с предложенным здесь.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group