码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-08-10 01:43:57      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

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();
        }
    }
}

 

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

标签:

原文地址:http://www.cnblogs.com/ck235/p/4716749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!