• 冒泡排序后用二分查找法查找位置


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Threading;                          //用来包含sleep
    
    namespace 冒泡排序
    {
        class Program
        {
            static void Main(string[] args)
            {
                int[] array=new int[10];
                int exchange;
                for (int i=0;i<array.Length;i++)      //length为10,为什么直接填10不行
                {
                Random ran = new Random();            //默认种子是时间,不休息的话,等于默认种子是一个时间,故而长成一个随机数
                array[i]=ran.Next(0,100);                           
                Thread.Sleep(30);    
                }
                Console.Write("所生成的随机数列为:");
                foreach (int x in array)
                    Console.Write(" " + x);
                for (int i=0;i<9;i++)               //相邻数字进行大小排序,极端情况为最大的数在最小的位置,这样相邻位置交换9次可以把它移动到应有的位置
                {
                    for (int k = 0; k < 9; k++)
                    {
                        if (array[k] >= array[k + 1])
                        {
                            exchange = array[k];
                            array[k] = array[k + 1];
                            array[k + 1] = exchange;
                        }
                    }
                }
                Console.WriteLine();
                Console.Write("排序后的数列为:    ");
                foreach (int y in array )
                        Console .Write (" "+y);
                
                Console.Write("
    请输入索要查询的数字:");
                int num = int.Parse(Console.ReadLine());
                int begin = 0, end = 9,mid;
                bool abc=array.Contains(num);
                if (abc==false)
                    Console.WriteLine("数列中不含有此数字");                      //用了一回布尔型,还不太熟练
                else
                    while (true)
                {
                    mid = (begin + end) / 2;
                    if (array[mid] > num)
                        end = mid;
                    if (array[mid] < num)
                        begin = mid;
                    if (array[mid] == num)
                    {
                        Console.WriteLine("您所查找的数字在数列中的索引位置为" + mid);
                        break;
                    }
                }
                Console.ReadLine();
            }
        }
    }
  • 相关阅读:
    清北学堂总结(未完待续。。。。。。。)
    洛谷p3372 线段树模版
    SPFA模版
    线段树 洛谷 p1531 I hate it(I hate it too)
    01 背包找装满方案数 洛谷 p1164 小a点菜
    01 找最大剩余体积 洛谷1049 装箱问题
    洛谷 p1880 石子合并 区间dp
    石子合并 最大值
    清北学堂入学测试d
    HTML 标记 3 —— 框架
  • 原文地址:https://www.cnblogs.com/ck235/p/4716749.html
Copyright © 2020-2023  润新知