int[] arr = {800,11,50,771,649,770,240, 9}; int temp = 0; for (int write = 0; write < arr.Length; write++) { for (int sort = 0; sort < arr.Length - 1; sort++) { if (arr[sort] > arr[sort + 1]) { temp = arr[sort + 1]; arr[sort + 1] = arr[sort]; arr[sort] = temp; } } Console.Write("{0} ", arr[write]); }
我要尝试做的就是对此数组进行简单的冒泡排序。我想弄清楚为什么要弄乱排序。例如,当数组为时{800,11,50,771,649,770,240, 9}:
{800,11,50,771,649,770,240, 9}
这是显示的内容: 11, 50, 649, 9, 649, 770, 771, 800
11, 50, 649, 9, 649, 770, 771, 800
我认为我可能在比较中缺少某些内容。
不,您的算法有效,但是您的Write操作在外循环内放错了位置。
Write
int[] arr = { 800, 11, 50, 771, 649, 770, 240, 9 }; int temp = 0; for (int write = 0; write < arr.Length; write++) { for (int sort = 0; sort < arr.Length - 1; sort++) { if (arr[sort] > arr[sort + 1]) { temp = arr[sort + 1]; arr[sort + 1] = arr[sort]; arr[sort] = temp; } } } for (int i = 0; i < arr.Length; i++) Console.Write(arr[i] + " "); Console.ReadKey();