Maison >développement back-end >Tutoriel C#.Net >Tri cocktail (tri double bulle, tri brassé ou tri ondulé)
Tri des cocktails (tri à double bulle, tri par brassage ou tri par ondulation)
using System; using System.Collections.Generic; using System.Linq; using System.Text;namespace Sort { class CockTailSorter { private static int[] myArray; private static int arraySize; public static int[] Sort(int[] myArray) { arraySize = myArray.Length; CockTailSort(myArray); return myArray; } public static void CockTailSort(int[] myArray) { int low, up, index, i; low = 0;//数组起始索引 up = myArray.Length - 1;//数组索引最大值 index = low;//临时变量 //判断数组中是否有多个元素 while (up > low)//每一次进入while循环都会找出相应范围内最大最小的元素并分别放到相应的位置 { //进入该for循环会将索引限定范围内最大的元素放到最右边 for (i = low; i < up; i++)//从上向下扫描 { if (myArray[i] > myArray[i + 1]) { Swap(ref myArray[i], ref myArray[i + 1]); index = i;//记录当前索引 } } up = index;//记录最后一个交换的位置 //进入该for循环会将索引限定范围内最小的元素放到最左边 for (i = up; i > low; i--)//从最后一个交换位置从下往上扫描 { if (myArray[i] < myArray[i - 1]) { Swap(ref myArray[i], ref myArray[i - 1]); index = i; } } low = index;//记录最后一个交换的位置 } } private static void Swap(ref int left, ref int right) { int temp; temp = left; left = right; right = temp; } } }
Le tri des cocktails est égal à une légère variation du tri à bulles. La différence est que de bas en haut, puis de haut en bas, le tri à bulles compare uniquement chaque élément de la séquence de bas en haut. Il peut obtenir des performances légèrement meilleures que le tri à bulles, car le tri à bulles ne compare que dans une seule direction (de bas en haut) et ne déplace qu'un seul élément dans chaque cycle.
En utilisant le tri des cocktails, les nombres dans le tableau sont disposés de manière irrégulière. Trouvez d'abord le plus petit nombre et mettez-le en premier, puis trouvez le plus grand nombre et mettez-le en dernier. Trouvez ensuite le deuxième plus petit nombre et placez-le en deuxième position, puis trouvez le deuxième plus grand nombre et mettez-le en avant-dernière position. Et ainsi de suite jusqu'à ce que le tri soit terminé.
Ce qui précède est le contenu du tri des cocktails (tri à double bulle, tri par agitation ou tri par ondulation. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www). .php.cn) !