Keep on going never give up.

Let's Go

C# 学习笔记(49)冒泡排序算法

C#Lonely2019-05-19 23:30:0069次0条

// 冒泡排序法,让数组中的元素两两比较(第i个与i+1个比较),经过(数组n个元素,要比较 n-1 趟)趟两两比较,数组中的元素能按照我们预期的规律排序;
// 降序排序(从大到小排序),两两比较要用 <       
// 升序排序 (从小到大排序),两两比较要用 >    

//10、20、30、40、50   原始数据  5个元素
//20、30、40、50、10   第一趟   比较4次
//30、40、50、20、10   第二趟   比较3次
//40、50、30、20、10   第三趟   比较2次
//50、40、30、20、10   第四趟   比较1次

//n个元素,就要排n-1趟 ,如5个元素,排5-1=4趟
//每趟比较的次数为n-1-i


int[] num = new int[10];//(数组n个元素,要比较 n-1 趟)
int temp = 0;

//输入
Console.WriteLine("请输入10个整数,回车确认输入下一个数,请输入:");
for (int i = 0; i < num.Length; i++)
{
    num[i] = int.Parse(Console.ReadLine());
}

//冒泡排序
for (int i = 0; i < num.Length - 1; i++) //控制比较的趟数,循环一次表示比较了一趟;(数组n个元素,要比较 n-1 趟);
{
    for (int j = 0; j < num.Length - 1 - i; j++)//控制比较的次数,每趟比较的次数为n-1-i,如:最开始的要排9次,依次9,8,7,6……
    {
        if (num[j] > num[j + 1]) //两两比较,第n个与n+1个比较(第一个数和第二个数比,第二个数和第三个数比……)
        {
            //交换位置
            temp = num[j];
            num[j] = num[j + 1];
            num[j + 1] = temp;
        }
    }
}

//输出
Console.WriteLine("升序排序输出:");
for (int i = 0; i < num.Length; i++)
{
    Console.WriteLine(num[i]);
}
Console.ReadKey();






暗锚,解决锚点偏移

文章评论

    嘿,来试试登录吧!