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, Супермодераторы



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

Сейчас этот форум просматривают: Mikhail_K


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

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