爬山搜索法c语言代码,搜索算法--爬山法 (代码示例)
以航班为例,从出发城市到目标城市区域内各段最远的航班
//1.程序入口
static void Main(string[] args)
{
Test.SampleOne sample = new Test.SampleOne();
sample.Start(1, “北京”, “深圳”);
}
//2.实现方法
using System;
using System.Collections.Generic;
namespace Test
{
public class SampleOne
{
///
/// 航班
///
private List flights = null;
///
/// 航班数量
///
private int numFlights = 0;
private void InitData()
{
if (flights == null)
{
flights = new List();
flights.Add(new FlightInfo(“北京”, “沈阳”, 684));
flights.Add(new FlightInfo(“北京”, “杭州”, 1273));
flights.Add(new FlightInfo(“杭州”, “武汉”, 751));
flights.Add(new FlightInfo(“北京”, “武汉”, 1161));
flights.Add(new FlightInfo(“武汉”, “深圳”, 1069));
flights.Add(new FlightInfo(“沈阳”, “深圳”, 2792));
numFlights = flights.Count;
}
}
///
/// 寻找出发城市到目的地城市最远距离的航班
///
/// 寻找次数
/// 出发城市
/// 目的地城市
public void Start(int i, string from, string to)
{
//初始化数据
InitData();
FlightInfo f = Find(from);
if (f == null)
{
Console.WriteLine(“无此航班”);
Console.ReadKey();
}
Console.WriteLine(“节点:{0},出发地:{1},目的地:{2},距离:{3}”, i, f.From, f.To, f.Distance);
if (f.To.Equals(to))
{
Console.WriteLine(“已到达目的地。”);
return;
}
Start(++i, f.To, to);
Console.ReadKey();
}
//找出离出发城市最远的航班
private FlightInfo Find(string from)
{
int pos = -1;
int dist = 0;
for (int i = 0; i < numFlights; i++)
{
if (flights[i].From.Equals(from) && !flights[i].Skip)
{
if (flights[i].Distance > dist)
{
pos = i;
dist = flights[i].Distance;
}
}
}
if (pos != -1)
{
flights[pos].Skip = true;
return new FlightInfo(flights[pos].From, flights[pos].To, flights[pos].Distance);
}
return null;
}
}
///
/// 航班信息
///
public class FlightInfo
{
private string from;
private string to;
private int distance;
private bool skip;
public FlightInfo(string strFrom, string strTo, int intDistance)
{
from = strFrom;
to = strTo;
distance = intDistance;
skip = false;
}
///
/// 出发地
///
public string From
{
get { return from; }
set { from = value; }
}
///
/// 目的地
///
public string To
{
get { return to; }
set { to = value; }
}
///
/// 距离
///
public int Distance
{
get { return distance; }
set { distance = value; }
}
///
/// 是否跳跃忽略
///
public bool Skip
{
get { return skip; }
set { skip = value; }
}
}
}
爬山搜索法c语言代码,搜索算法--爬山法 (代码示例)相关推荐
- 爬山搜索法c语言代码,模拟退火算法和爬山算法 – 算法大全
##一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法.爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优 ...
- C语言局部搜索算法(爬山法,模拟退火法,遗传算法)求解八皇后问题
C语言局部算法求解八皇后问题 写在前面 八皇后问题及局部搜索算法 爬山法(hill-climbing searching) 算法介绍 代码实现 退火法(simulated annealing) 算法介 ...
- 语言小型心形图案代码_c语言心形告白代码实现
c语言心形告白代码实现 1.彩色告白 include include include include define U 0.1 define V 0.053 void SetColor(unsigne ...
- 真分数c语言,C语言列出真分数序列代码及解析
原标题:C语言列出真分数序列代码及解析 按递增顺序依次列出所有分母为60,分子小于60的最简分数. 分子.分母只有公因数1的分数叫做最简分数或者说分子和分母是互质数的分数,叫做最简分数,又称既约分数, ...
- f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码
f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码 分类: Python Numpy_Scipy fortran MinGW_GCC_Boost f2py 2012 ...
- c语言万年历查询程序代码,C语言 万年历程序(示例代码)
C语言 万年历程序 原代码:[email protected]:~/c++$ cat 123.c #include #define Mon 1 #define Tues 2 #define We ...
- c++代码表白_推荐!在浪漫的日子里程序猿如何用C语言实现520表白代码
跨年,新年是浪漫的好日子这篇文章主要为大家详细介绍了C语言实现520表白代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下.告白的代码如下,献丑献丑: #include #include int ...
- ISO语言代码和国家代码+Locale常量+ISO货币符号
[1]ISO语言代码和国家代码 [2]Locale常量 [3]ISO货币符号
- c++心形代码_c语言心形告白代码实现
c语言心形告白代码实现 1.彩色告白 include include include include define U 0.1 define V 0.053 void SetColor(unsigne ...
最新文章
- UWA官方Demo新增《小米超神》,全面揭秘重度手游的性能表现!
- Python入门100题 | 第041题
- 无线网络渗透测试-Gerix Wifi Cracker破解无线网络
- python连接oracle导出数据文件
- Useful websites for library
- ASP.Net_配置文件
- 二阶矩阵乘法C语言,c语言矩阵相乘
- django-模板的继承
- python中的and_我想问下python中 逻辑与:“”和“and”的区别
- m_pRecordset-Open
- Study 7 —— CSS美化背景和边框
- 庖丁解牛之spring源码系列一
- 计算机财务应用实验心得,金蝶财务软件实训心得.doc
- ccsk matlab,一种CCSK解调预处理方法与流程
- STC15单片机实战项目 - 系统评估
- 学习Android笔记
- HTML开发者工具抓取所有图片,利用Chrome开发者工具功能进行网页整页截图的方法...
- 餐馆点餐系统(Java GUI + mysql)
- 如何用机器学习识别猫叫和狗叫声?
- 为项目加入第三方字体DS-Digital,并使用
热门文章
- 饼图加引导线_【如何在饼形图中添加引导线(Excel)】excle里面一条竖状线
- android实现类似在短信图标右上角显示短信个数的效果
- you-get的一点修改
- 《文明六:Sid Meier's Civilization VI 》的介绍
- 信创只是开始_《作业帮高管团队亲笔信:D轮只是开始,一切归零,重新出发》...
- 15幅非常有创意的影子摄影作品欣赏
- 经典《飞机大战》游戏,难道你不想自己动手开发一个嘛(附源码免费下载)
- Docker (四) 容器基本命令
- 草图vr3.6许可证服务器安装失败,VRay3.6无法获得许可-200
- msde2000修改服务器名,MSDE2000数据库怎么修改SA口令?