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

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("\n请输入索要查询的数字:");
            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();
        }
    }
}

 

posted @ 2015-08-09 23:54  陈艺呵呵  阅读(291)  评论(0)    收藏  举报