0

مرتب سازی سریع

 
rezahashemian1374
rezahashemian1374
کاربر برنزی
تاریخ عضویت : مهر 1391 
تعداد پست ها : 254
محل سکونت : تهران

مرتب سازی سریع

#include <iostream.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>

void quickSort(int numbers[], int array_size);
void q_sort(int numbers[], int left, int right);
void main (void)
{
    const 
n = 10;
    
int X[n];

    
randomize();
    for (
int i=0; i<n; i++)
    {
        
X[i] = rand() % 100;
        
cout << X[i] << "\t";
    }

    
quickSort (X, n);

    
cout<< endl;
    for (
i=0; i<n; i++)
        
cout << X[i] << "\t";

    
getch();
}

void quickSort(int numbers[], int array_size)
{
  
q_sort(numbers, 0, array_size - 1);
}



void q_sort(int numbers[], int left, int right)
{
  
int pivot, l_hold, r_hold;

  
l_hold = left;
  
r_hold = right;
  
pivot = numbers[left];
  while (
left < right)
  {
    while ((
numbers[right] >= pivot) && (left < right))
      
right--;
    if (
left != right)
    {
      
numbers[left] = numbers[right];
      
left++;
    }
    while ((
numbers[left] <= pivot) && (left < right))
      
left++;
    if (
left != right)
    {
      
numbers[right] = numbers[left];
      
right--;
    }
  }
  
numbers[left] = pivot;
  
pivot = left;
  
left = l_hold;
  
right = r_hold;
  if (
left < pivot)
    
q_sort(numbers, left, pivot-1);
  if (
right > pivot)
    
q_sort(numbers, pivot+1, right);
}

Seyyed.Reza.Hashemian@Gmail.Com

دوستانی که سوالی دارند یا مایل به تماس هستند می توانند از اطلاعات بالا استفاده نمایند.

اگر هم تایپکی زدید و احتیاج به پاسخگویی سریع داشتید اطلاع دهید

پنج شنبه 18 مهر 1392  8:54 AM
تشکرات از این پست
دسترسی سریع به انجمن ها