C#测试题四

冒泡排序
            int[] num = { 6, 2, 78, 34, 54 };
            int mid;
            //总共冒泡 num.Length - 1 次
            for (int i = 0; i < num.Length - 1; i++)
            {
                //把最大的冒泡出来
                for (int j = 0; j < num.Length - 1 - i; j++)
                {
                    if (num[j] > num[j + 1])
                    {
                        mid = num[j];
                        num[j] = num[j + 1];
                        num[j + 1] = mid;
                    }
                }
            }
            for (int i = 0; i < num.Length; i++)
            {
                Console.WriteLine(num[i]);
            }

 插入排序
            int[] num = { 6, 5, 3, 1, 8, 7, 2, 4 };
            int value, key;
            for (int i = 1; i < num.Length; i++)         //从第2个数抽出,分别与前面的数比较。所以i的初始值为1
            {
                value = num[i];         //拿出来的值为value
                key = i - 1;            //key为指针,是必要的
                                        //key >= 0 一定要放在 nums[key] > value前面,否则会报错,索引超出
                                        //这里牵扯到了执行顺序的问题
                while (key >= 0 && num[key] > value)        //都与value比较
                {
                    num[key + 1] = num[key];            //(向后覆盖)把值往后移一位
                    key--;
                }
                num[key + 1] = value;       //最后把拿出来的value放回去,与while循环一起用
                                            //如果while循环从没有执行过,这一步虽然执行了,但是没有起到任何作用
            }
            for (int i = 0; i < num.Length; i++)
            {
                Console.WriteLine(num[i]);
            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值