Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Form1()
- {
- InitializeComponent();
- }
- private void mnuTrier_Click(object sender, EventArgs e)
- {
- TriRap(0, lstintinfo.Count - 1);
- SetItems(); //éfface les items du listbox et appel setitems
- }
- private bool blnEstTrié(int q) //méthode récursive pour vérifier si tableau est trier
- {
- if (lstintinfo.Count == q + 1) //si le count = q (ou pour quand c'est fini de sortir les items car q++ est arriver jusqu'à c'est fini)
- {
- return true; //cest trier
- }
- else
- {
- if (lstintinfo[q] <= lstintinfo[q + 1])
- {
- return blnEstTrié(q + 1); //récursive mais avec q + 1
- }
- else
- {
- return false; //false car c'est pas trier
- }
- }
- //for (int q = 0; q < lstintinfo.Count - 1; q++)
- //{
- // if (
- //}
- }
- private long RechercheBin(int déb, int fin, int X) //add commentaires
- {
- if (lstintinfo.Count == 1)
- {
- return 0;
- }
- else if(X > lstintinfo[lstintinfo.Count - 1])
- {
- return lstintinfo.Count - 1;
- }
- else if (X < lstintinfo[0])
- {
- return 0;
- }
- else if (X > lstintinfo[(déb + fin) / 2])
- {
- return RechercheBin((déb + fin) / 2, fin, X);
- }
- else if (X < lstintinfo[(déb + fin) / 2])
- {
- return RechercheBin(déb, (déb + fin) / 2, X);
- }
- else
- {
- if (X == lstintinfo[(déb + fin) / 2])
- {
- return (déb + fin) / 2 + 1;
- }
- else
- {
- return RechercheBin(déb++, fin--, X);
- }
- /*if (X == lstintinfo[déb + 1])
- {
- return déb + 2;
- }
- else if (X == lstintinfo[fin])
- {
- return fin + 1;
- }
- else if (X == lstintinfo[déb])
- {
- return déb + 1;
- }
- else if (X == lstintinfo[fin - 1])
- {
- return fin;
- }
- else if (X == lstintinfo[fin - 2])
- {
- return fin - 1;
- }
- else if (X == lstintinfo[fin - 3])
- {
- return fin - 2;
- }
- else if (X == lstintinfo[fin - 4])
- {
- return fin - 3;
- }
- else if (X == lstintinfo[fin - 5])
- {
- return fin - 4;
- }
- else if (X == lstintinfo[déb + 2])
- {
- return déb + 3;
- }
- /*else if (X == lstintinfo[déb - 1])
- {
- return déb;
- }
- else if (X == lstintinfo[fin + 1])
- {
- return fin + 2;
- }
- else
- {
- }*/
- }
- }
- private void TriRap(int déb, int fin)
- {
- if (blnEstTrié(0))
- {
- return; //blnEstTrié cherche si c'est trié, donc si c'est vrai c'est déja trier
- }
- else
- {
- //indG est l'indexe de gauche, indD est l'indexe de droite
- int pivot = déb;
- int indG = déb;
- int indD = fin;
- int temp = 0;
- do
- {
- //échange les deux parties de list, lstintinfo[indg] et lstintinfo[d]
- if (lstintinfo[indG] >= lstintinfo[indD])
- {
- temp = lstintinfo[indG];
- lstintinfo[indG] = lstintinfo[indD];
- lstintinfo[indD] = temp;
- //si pivot = indG alors pivot = indD,
- //si pivot = indD alors pivot = indG
- pivot = indG + indD - pivot;
- }
- if (pivot == indG)
- {
- indD--; //indD - 1, décrémente indD
- }
- else
- {
- indG++; //indG + 1, incrémente indG
- }
- }
- while ((indG != indD));
- if (déb < indG - 1)
- {
- //appel récursif sur la partie gauche
- TriRap(déb, indG - 1);
- }
- if (fin > indD + 1)
- {
- //appel récursif sur la partie droite
- TriRap(indD + 1, fin);
- }
- }
- }
- List<int> lstintinfo = new List<int>();
- Random rndmint = new Random();
- private void Form1_Load(object sender, EventArgs e)
- {
- for (int l = 0; l < 45; l++) //loop pour crée le list
- {
- lstintinfo.Add(rndmint.Next(300)); //list qui contient l'information
- lstDonnées.Items.Add(lstintinfo[l]); //listbox que l'utilisateur voit
- }
- }
- private void SetItems()
- {
- lstDonnées.Items.Clear(); //éfface tous les items du list
- for (int w = 0; w < lstintinfo.Count - 1; w++)
- {
- lstDonnées.Items.Add(lstintinfo[w]); //ajoute les items de lstintinfo qui est trier
- }
- }
- private void mnuRedémare_Click(object sender, EventArgs e)
- {
- lstDonnées.Items.Clear(); //éfface tous les items du list
- lstintinfo.Clear();
- for (int l = 0; l < 45; l++)
- {
- lstintinfo.Add(rndmint.Next(300));
- lstDonnées.Items.Add(lstintinfo[l]);
- }
- }
- private void mnuRechercheBin_Click(object sender, EventArgs e)
- {
- MessageBox.Show("Votre nombre se trouve au rang " + Convert.ToString(RechercheBin(0, lstintinfo.Count -1, Convert.ToInt32(txtRechercheX.Text))));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement