111,076
社区成员




using System;
using System.Collections.Generic;
using System.Text;
namespace 分块查找
{
class Program
{
static void Main(string[] args)
{
int[] aa = { 3,6,8,7,10,15,12,14,16,17,20,21};
int ysnum, zu,ww=0;
for (int aa1 = 0; aa1 < aa.Length;aa1++ )
Console.Write(aa[aa1]+" ");
Console.WriteLine();
Console.WriteLine("元素个数:{0}",aa.Length);
ysnum = aa.Length;
Console.Write("请输入组数:");
zu = Convert.ToInt32(Console.ReadLine());
int d=aa.Length / zu;
int [,] fenkuai=new int [zu,d];
//分组
Console.WriteLine("分块如下:");
for(int z=0;z<zu;z++)//进行分块
for (int y = 0; y < d; y++)
{
fenkuai[z, y] = aa[ww];
ww++;
}
for (int z = 0; z < zu; z++)//输出分块
{
for (int y = 0; y < d; y++)
{
Console.Write("{0} ", fenkuai[z, y]);
}
Console.WriteLine();
}
Console.WriteLine("关键字:");
int[] suoyin = new int[zu];
int q = 0;
int index=0;
for (int z = 0; z < zu; z++)
{
int y;
for (y = 0; y < d; y++)
{
if (q < fenkuai[z, y])
{
q = fenkuai[z, y];
}
}
//Console.Write("{0} ", q);//输出索引表
////建立索引表
if(index<zu)
{suoyin[index] = q;}
index++;
}
for (int n = 0; n < zu; n++)
{
Console.Write(suoyin[n] + " ");
}
Console.WriteLine("请输入要查找的值:");
int kk = Convert.ToInt32(Console.ReadLine());
int pp= shunxu(suoyin, kk);
for (int n = 0; n < d; n++)
{
if (kk == fenkuai[pp, n])
{
Console.WriteLine("该数值在元素当中");
}
}
Console.ReadLine();
}
public static int shunxu(int [] aa,int k)
{
for (int a = 0; a < aa.Length - 1; a++)
{
if (k <= aa[a])
{
return a;
}
}
return -1;
}
}
}