C# 冒泡排序
冒泡排序
int temp = 0; int[] arr = { 23, 44, 66, 76, 98, 11, 3, 9, 7 }; //循环这个数组,数组长度是9-1=8 for (int i = 0; i < arr.Length - 1; i++) { //循环还这个数组,数组长度是9-1-i for (int j = 0; j < arr.Length - 1 - i; j++) { //比较数组中,前后2个数的大小, //如果前面的数,大于后面的数,则进入判断 if (arr[j] > arr[j + 1]) { //同时将后面的数,赋值给temp temp = arr[j + 1]; //用前面的数赋值给后面的数。 arr[j + 1] = arr[j]; //将之前赋值的temp赋值给前面的数字 arr[j] = temp; } } }
主要是把大的数字放在后面去,小的数字放在前面。
第一次进入if判断之后
数组变成{ 23, 44, 66, 76, 11, 98, 3, 9, 7 }
For里面的第一次循环结束之后
数组变成{ 23, 44, 66, 76, 11, 3, 9, 7, 98}
这样无限循环就可以把最大的数字,放到最后。
for (int j = 0; j < arr.Length - 1 - i; j++)
这里有个arr.Length - 1 - i 减i的用意是将已经排好的最后一位,不再进行排序,这样就可以每次都将最大的数字排放到最后面。