2012-03-19 4 views
-1

Ceci est édité,Faire une fonction récursive de tri en C++

Iam écrire un programme qui triera un tableau en utilisant récursion. Le programme obtiendra les valeurs du tableau à partir d'un fichier texte. Ma question est comment puis-je faire une fonction de tri qui va trier le tableau en ordre numérique ascendant (croissant).

que je dois faire ces étapes,

  • Trouver le plus petit élément dans le tableau
  • Déplacer cet élément dans la première position du tableau
  • Trier le reste du tableau en faisant un récursif appel à la fonction de tri

Et voici ce que j'ai jusqu'à présent,

int main() 
{ 
    cout << "Enter a file name"; 
    cin >> fileName; 

    ifstream inputFile; 

    inputFile.open("fileName.txt"); 

    if(inputFile.fail()) 
    { 
     cout << "ERROR: Your file did not open" << endl; 
    } return 1; System("pause"); 

    int usedVariable; 
    if(inputFile >> usedVariable) 
    { 
     usedVariable + 1; 
    } usedVariable++; 

    else 
    { 
     inputFile.close(); 
     cout << "ERROR: There are no integers in the file"; 
     exit(1); 
    } 

    int *x; 
    x = new int [usedVariable]; 

    inputFile.clear(); 
    infile.seekg(0, ios::beg) 

    inputFile >> x; 

    inputFile.close(); 
} 

Alors, comment je fais ça?

Merci à tous

+0

Ce n'est pas une recherche binaire, c'est un tri par sélection. –

+4

Si vous pouvez effectuer une recherche binaire, votre tableau est déjà trié. –

+0

... et pourquoi feriez-vous un tri par sélection récursive? Que pensez-vous que vous gagnez sur l'itération dans ce cas? –

Répondre

1

Il suffit d'utiliser std::vector comme "tableau" et std::sort comme algorithme de tri.

+0

J'ai édité ma question – Gvegas222

+0

@ Gvegas222, ne change rien sauf la première phrase de ma réponse. – Griwes

+0

Pouvez-vous me donner un exemple sur la façon de faire ce que vous avez dit? Im juste avoir du mal à essayer de le faire. Merci – Gvegas222

Questions connexes