小编典典

简单的气泡排序C#

c#

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}

这是显示的内容: 11, 50, 649, 9, 649, 770, 771, 800

我认为我可能在比较中缺少某些内容。


阅读 197

收藏
2020-05-19

共1个答案

小编典典

不,您的算法有效,但是您的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();
2020-05-19