Quick sort

Vediamo un brese e semplice esempio realizzato in c++ di ordinamento QUICK SORT

Problema: Ordinare un array di 7 elementi (3 5 7 3 4 6 2) utilizzando l’algoritmo di ordinamento

Codice.cpp

#include <iostream>
 
 
using namespace std;
 
int FindPivot(int A[],int i,int j){
 for(int k=i+1; k<=j;k++){
 if(A[k] > A[i]){
 return A[k];
 }else if(A[k]<A[i]){
 return A[i];
 }
 }
 return (-1);
}
 
<span id="more-7"></span>
 
 
int Partition(int A[],int p,int r,int pivot){
 int i=p;
 int j=r;
 int t=0;
 
 do{
 while(A[j] >= pivot){
 j=j-1;
 }
 
 while(A[i]<pivot){
 i=i+1;
 }
 
 if(i<j){
 //scambio
 t = A[i];
 A[i]=A[j];
 A[j]=t;
 }
 }while(i<j);
 return j;
}
 
 
void QuickSort(int A[],int p,int r){
 int q,pivot;
 
 pivot=FindPivot(A,p,r);
 
 if(p<r && pivot!=-1){
 q=Partition(A,p,r,pivot);
 QuickSort(A,p,q-1);
 QuickSort(A,q+1,r);
 }
 return;
}
 
main(){
 int A[7]={3,5,7,1,4,6,2};
 int p=0,r=7;
 
 QuickSort(A,0,r-1);
 
 //VISUALIZZAZIONE
 cout<< "L'array di 7 elementi ordinato e' ";
 for(int k=0; k<r; k++){
 cout<<A[k];
 cout<<endl;
 }
}
Tothebit

About Tothebit

Tothebit