• 循环经典--------冒泡排序,查找。


    1、冒泡排序

    将8个整数进行升序排列

    22 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
    3 22 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
    4 4 22 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 10 10 10 10
    11 11 11 22 22 22 22 22 22 22 22 12 12 12 12 12 12 12 12 12 12 12 10 10 10 11 11 11 11
    55 55 55 55 55 55 55 55 55 55 55 55 33 33 33 33 33 33 10 10 10 10 12 12 12 12 12 12 12
    66 66 66 66 66 66 33 33 33 33 33 33 55 10 10 10 10 10 33 33 33 33 33 33 33 33 33 33 33
    33 33 33 33 33 33 66 10 10 10 10 10 10 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55
    10 10 10 10 10 10 10 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66
    趟数 第1趟 第2趟 第3趟 第4趟 第5趟 第6趟 第7趟
    次数 比7次 比6次 比5次 比4次 比3次 比2次 比1次
    关系:   趟数:n-1,次数:n-i

     程序代码:

     static void Main(string[] args)
            {
                int[] a = new int[8] {22,3,4,11,55,66,33,10 };
                //升序排列
                for(int i=1;i<=a.Length;i++)
                {
                    for (int j=0;j<a.Length-i;j++)
                    {if(a[j]>a[j+1])
                    {
                        int t = a[j];
                        a[j] = a[j + 1];
                        a[j + 1] = t;
                    }
                    }
                }
                //输出数组a
                //for (int i = 0; i<8;i++ )
                //{
                //    Console.WriteLine(a[i]);
                //}
                foreach(int b in a)
                {
                    Console.WriteLine(b);
                }
            }

    2、顺序查找

    注意:

    体会布尔型 bool meizhaodao=true;在本题中的作用;

    体会break的作用;

     程序代码:

     static void Main324234(string[] args)
            {//输入要找的数
                Console.WriteLine("请输入你要找的数:");
                int find = Convert.ToInt32(Console.ReadLine());
                int[] a = new int[]{ 2, 11, 55, 77, 4, 3, 2, 6 };
              //查找
                bool meizhaodao = true;//如果不加,没法输出“找不到”这句话
                for (int i = 0;i<=7;i++)
                {if(a[i]==find)
                {
                    meizhaodao =false;
                    Console.WriteLine("找到了,是第{0}个数。",i+1);
                    break; //如果不加,数组含有2个find,可能输出2个找到了。
                } 
                }
                if(meizhaodao==true)
                {
                    Console.WriteLine("没找到");
                }
            }

    3、二分法查找------找英语单词

    思路:

    首先将要排序的数组或集合排序(冒泡排序法)

    然后查找中间数,看看中间数==find?如果相等,输出找到了,并且终止循环;---循环体

    如果find>中间数,去掉前面的一半,继续用二分法在后面一半数里面找;----循环体

    如果find<中间数,去掉后面的一半,继续用二分法在前面的一半里头找;----循环体

    重复循环,直到结束下标<开始下标时,输出没有找到,并终止循环。

    进一步分析:写出本题的循环体和循环条件需要有一个开始下标、中间下标、结束下标。

    程序代码:

     static void Main67778(string[] args)
            { //输入你要找的数
                Console.WriteLine("请输入你要找的数:");
                int find=Convert.ToInt32( Console.ReadLine());
                int[] a = new int[]{11,22,33,44,55,66,77,88,99};
                //查找
                int kaishi= 0, jieshu =a.Length-1;
                for (; ; )
                {
                    int mid = (kaishi + jieshu) / 2;
                    if(find==a[mid])
                    {
                        Console.WriteLine("找到了,是第{1}个数",mid+1);
                        break;
                    }
                    else if (find >a[mid])
                    {
                        kaishi = mid + 1;
                    }
                    else
                    {
                        jieshu = mid - 1;
                    }
                    if(kaishi>jieshu)
                    {
                        Console.WriteLine("没找到");
                        break;
                    }
                }
            }
  • 相关阅读:
    使用javap分析Java的字符串操作
    使用javap深入理解Java整型常量和整型变量的区别
    分享一个WebGL开发的网站-用JavaScript + WebGL开发3D模型
    Java动态代理之InvocationHandler最简单的入门教程
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 542 01 矩阵(暴力大法,正反便利)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
    Java实现 LeetCode 541 反转字符串 II(暴力大法)
  • 原文地址:https://www.cnblogs.com/jinshui/p/5428783.html
Copyright © 2020-2023  润新知