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