.net 分块查找算法怎么写?

zwj891129 2011-11-16 05:22:11
.net 分块查找算法怎么写?
...全文
194 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lornchen 2011-11-23
  • 打赏
  • 举报
回复
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;
}
}
}
zwj891129 2011-11-20
  • 打赏
  • 举报
回复
小白求助 请大虾们帮帮我啊
zwj891129 2011-11-16
  • 打赏
  • 举报
回复
自己顶一下

111,076

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧