Advertisement
Denny707

RecursiveInsertionSort

Jun 21st, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4. int N=10;
  5. void display(int arr[],int n);
  6.  
  7. void insertionSortRecursive(int arr[], int n){
  8.     if (n > 1){
  9.         // Ordina i primi n-1 elementi
  10.         insertionSortRecursive( arr, n-1 );
  11.      
  12.         // Inserisci l'ultimo elemnto alla sua posizione corretta nell'array selezionato
  13.         int last = arr[n-1];
  14.         int j = n-2;
  15.         /*
  16.         Muovi gli elmenti di arr[0..i-1] che sono piΓΉ grandi di key,
  17.         di una posizione avanti alla loro posizione corrente
  18.         */
  19.         while (j >= 0 && arr[j] > last){
  20.             arr[j+1] = arr[j];
  21.             j--;
  22.         }
  23.         arr[j+1] = last;
  24.         //debug
  25.         display(arr,n);cout<<"|"<<last;  cout<<endl;
  26.     }
  27. }
  28. int main(){
  29.     int arr[10]={4,8,10,5,3,644,55,3,1};
  30.     display(arr,N);cout<<endl;
  31.     cout<<"========="<<endl;
  32.     insertionSortRecursive(arr,N);
  33.     cout<<"========="<<endl;
  34.     display(arr,N);cout<<endl;
  35. }
  36.  
  37. void display(int arr[],int n){
  38.     for(int i=0;i<n;i++)
  39.         cout<<arr[i]<<" ";
  40.  
  41.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement