小弟总结了一下冒泡排序的推理过程,请各位高手多多指教
冒泡排序 升序排列 或者 降序排列
9 8 7 6 5 4 3 2 1 0 //0 1 2 3 4 5 6 7 8 9
8 7 6 5 4 3 2 1 0 9 第一趟比较 交换了9次 i=0 j=9 numbers.Length-1-i 7 6 5 4 3 2 1 0 8 9 第二趟比较 交换了8次 i=1 j=8 numbers.Length-1-i 6 5 4 3 2 1 0 7 8 9 第三趟比较 交换了7次 i=2 j=7 numbers.Length-1-i 5 4 3 2 1 0 6 7 8 9 第四趟比较 交换了6次 i=3 j=6 4 3 2 1 0 5 6 7 8 9 第五趟比较 交换了5次 i=4 j=5 3 2 1 0 4 5 6 7 8 9 第六趟比较 交换了4次 i=5 j=4 2 1 0 3 4 5 6 7 8 9 第七趟比较 交换了3次 i=6 j=3 1 0 2 3 4 5 6 7 8 9 第八趟比较 交换了2次 i=7 j=2 0 1 2 3 4 5 6 7 8 9 第九趟比较 交换了1次 i=8 j=1 int[] numbers={9,8,7,6,5,4,3,2,1,0};
//外面的循环 用来控制比较的趟数
for(int i=0;i<numbers.Length-1;i++)
{
for(int j=0;j<numbers.Length-1-i;j++)
{
if(numbers[j]>numbers[j+1])
{
int temp=numbers[j];
numbers[j]=numbers[j+1];
numbers[j+1]=temp;
}
}
} |