• 冒泡排序


    一.定义

    冒泡排序就是将一个数组中的元素按照从大到小或者从小到大的顺序进行排列。
    考试时主要考对数组及for语句的理解及运用。


    二.分析:推断算法过程

    int[] nums = { 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 = nums.Length - 1 - 0  =>   j = nums.Length - 1 - i
    第二趟比较:7 6 5 4 3 2 1 0 8 9 交换了8次   i = 1    j = nums.Length - 1 - 1  =>   j = nums.Length - 1 - i
    第三趟比较:6 5 4 3 2 1 0 7 8 9 交换了7次   i = 2    j = nums.Length - 1 - 2  =>   j = nums.Length - 1 - i
    第四趟比较:5 4 3 2 1 0 6 7 8 9 交换了6次   i = 3    j = nums.Length - 1 - 3  =>   j = nums.Length - 1 - i
    第五趟比较:4 3 2 1 0 5 6 7 8 9 交换了5次   i = 4    j = nums.Length - 1 - 4  =>   j = nums.Length - 1 - i
    第六趟比较:3 2 1 0 4 5 6 7 8 9 交换了4次    ……
    第七趟比较:2 1 0 3 4 5 6 7 8 9 交换了3次
    第八趟比较:1 0 2 3 4 5 6 7 8 9 交换了2次
    第九趟比较:0 1 2 3 4 5 6 7 8 9 交换了1次

    三.实例
    1.对数组进行升序排列(此写法只用于平时练习或面试时才会用,主要考验基本功。)

                int[] nums = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
                for (int i = 0; i < nums.Length - 1; i++)
                {
                    for (int j = 0; j < nums.Length - 1 - i; j++)
                    {
                        if (nums[j] > nums[j + 1])  //若要降序排列,此句if条件中">"号更改为"<"号即可。
                        {
                            int temp = nums[j];
                            nums[j] = nums[j + 1];
                            nums[j + 1] = temp;
                        }
                    }
                }
                // 遍历数组元素打印
                for (int i = 0; i < nums.Length; i++)
                {
                    Console.WriteLine(nums[i]);
                }

    输出结果:

    2.对数组进行升序排列(此写法用于做项目实战中,要学会灵活运用。)

                int[] nums = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
                Array.Sort(nums);   //此句只能做升序排列,不能做降序排列。若要做降序排列,可先做升序排列,再写 Array.Reverse(nums); 反转排列,间接达到降序排列的目的。
                //遍历数组元素打印
                for (int i = 0; i < nums.Length; i++)
                {
                    Console.WriteLine(nums[i]);
                }

    输出结果:

     3.对数组进行反转排列(此写法只能反转排列,并不一定按照大小排列。)

                int[] nums = { 1, 4, 3, 6, 9, 8, 11 };
                Array.Reverse(nums);    //只能对数组元素进行反转排列。若要做降序排列,可先做升序排列,再写此句反转排列,间接达到降序排列的目的。
                                        //遍历数组元素打印
                for (int i = 0; i < nums.Length; i++)
                {
                    Console.WriteLine(nums[i]);
                }

    输出结果:

    ------ 一件事情没有准备好,千万不要开始,一旦开始,就一定不要停止!自己决定的事情就一定要完成,不管付出多大的代价! ------
  • 相关阅读:
    ACE-6.1.0 linux 下的编译与安装步骤
    tcp_sync_server and tcp_sync_client
    网络服务器操作命令telnet
    eclipse CDT unresolved inclusion
    qt安装--this Qt version uses an unsupported makefile
    java指令详解
    (8) tomcat中管理领域、角色及用户
    (7) 将tomcat HTTP连接器启动在80端口(jsvc使用详解)
    10月16日面试总结
    MYSQL查询的四种情况
  • 原文地址:https://www.cnblogs.com/zhjason/p/13893805.html
Copyright © 2020-2023  润新知