2016-04-20 4 views
-2
#include<iostream> 

using namespace std ; 

void insertion_sort (int ch[]); 

int size = 7 , i , j , k , l , temp , place ; 

int main() { 

     int ch [] = { 2,6,4,75,3,4,4}; 

     void insertion_sort (ch) ; 

     for (l = 0 ; l < size ; ++l) 
     cout<<ch[l]<<" ";  

} 


void insertion_sort (int c []){ 

     for (i = 0 ; i < size ; ++i){ 

      k=i; 

       if (c[i+1]<c[i]){ 

        temp = c[i+1]; 
        c[i+1]=c[i]; 
        c[i]=temp; 
       } 

      while (k >=0 ){ 

       if(c[k]<c[k-1]) 
       { 
        place=c[k-1]; 
        c[k-1]=c[k]; 
        c[k]=place; 

       } 


       --k; 
      } 



     } 
} 
+0

das 'void' vor einem Funktionsaufruf scheint völlig unnötig –

+0

Was ist Ihre Frage? –

Antwort

0

void insertion_sort (ch) ; ergibt keinen Sinn. Dies bedeutet, dass eine Variable mit dem Namen insertion_sort mit dem Typ void deklariert und durch ch initialisiert wird. Wenn Sie nur ändern, die Funktion aufrufen möchte es

insertion_sort(ch); 
1

Stellen Sie sicher, Sie verstehen die drei verschiedene Möglichkeiten, eine Funktion, um zu sehen:

  1. Erklärung der Funktion:

    Leere insert_sort (int ch []);

  2. Definition der Funktion:

    Leere insertion_sort (int ch []) {// Code }

  3. Anruf auf die Funktion, wie diese, innerhalb main():

    insert_sort (ch);


mit Quicksort (C++) meinem Beispiel prüfen, es ist wirklich relevant!