对于一个int类型的数组,我们可以用冒泡排序的方法进行比较排序,但是对于实体类,则不行。
例如,对数组进行排序,代码如下:
class Program { static void Sort(int[] sortArray) { bool swapped = true; do { swapped = false; for (int i = 0; i < sortArray.Length-1; i++) { if (sortArray[i] > sortArray[i + 1]) { int temp = sortArray[i]; sortArray[i] = sortArray[i + 1]; sortArray[i + 1] = temp; swapped = true; } } } while (swapped); } static void Main(string[] args) { int[] array = new int[] { 12, 234, 5, 64, 3, 23, 334 }; Sort(array); foreach (int i in array) { Console.WriteLine(i + " "); } Console.ReadKey(); } }
对数组进行排序,如果这个数组是有序的数组,即是从小到大排序的,第一遍遍历完后,就跳出循环,这样可以减少时间。所以在循环开始时,设置一个布尔型的标识,在do循环开始时,把值设置为fasle,如果进行了数组内值换位置的动作,则把标识设置为true,接着循环,如果没有进行换位动作,则说明数据时有序的,直接跳出循环比较。但是,这个冒泡排序的方法只适用于int类型的比较,如果是对实体对象进行比较,则行不通,需要做调整。