zoukankan      html  css  js  c++  java
  • 冒泡排序 二分法查找

    一、冒泡排序
    趟数和次数:
    每趟出来一个最小(最大)的数。
    每次比较相邻的两个数,按要求交换位置。

     int[] a = new int[8] { 9, 21, 8, 13, 16, 22, 7, 6 };
                Console.WriteLine("************排序之前*************");
                for (int i = 0; i < a.Length; i++)
                {
                    Console.Write(a[i] + "	");
                }
                Console.WriteLine();
                //排序
                for (int i = 1; i<=a.Length-1; i++)   //趟数  n-1
                {
                    for (int j = 1;j<=a.Length-i ; j++)  //每趟中比较的次数  n-i
                    {
                        if (a[j - 1] > a[j])
                        {
                            int temp = a[j - 1];
                            a[j - 1] = a[j];
                            a[j] = temp;
                        }
                    }
                }
                Console.WriteLine();
                Console.WriteLine("************排序之后*************");
                for (int i = 0; i < a.Length; i++)
                {
                    Console.Write(a[i] + "	");
                }
                Console.WriteLine();

    二、二分查询
    前提:数组必须是有序的。

                int[] a = new int[] { 22, 21, 16, 13, 9, 8, 7, 6 };
    
                //从键盘接收要查找的数。
                int find = Convert.ToInt32(Console.ReadLine());
    
                int maxsub, minsub, midsub;
                minsub = 0;
                maxsub = a.Length - 1;
    
                for (;maxsub >= minsub ; )
                {
                    midsub = (maxsub + minsub) / 2; //求中间下标
                    if (a[midsub] == find)  //看看找到了没有?
                    {
                        Console.WriteLine("恭喜找到了,在第" + midsub + "个位置上");
                        break;
                    }
                    else //这次没找到
                    {
                        if (a[midsub] > find)   //扔掉上半
                        {
                            minsub = midsub + 1; 
                        }
                        else    //扔掉下半
                        {
                            maxsub = midsub - 1;
                        }
                    }
                }
  • 相关阅读:
    检测ip是否ping通和ssh端口是否通
    python从excel取值
    后k8s时代-微服务
    nginx 笔记-01
    Linux中后台执行的方法nohup和screen
    为什么要自定义Java类加载器
    Synchronized实现原理
    一个线程两次或者多次调用start()方法会怎么样
    Java里锁的种类的总结
    Spring事务控制(PROPAGATION_NESTED)
  • 原文地址:https://www.cnblogs.com/languang/p/4535308.html
Copyright © 2011-2022 走看看