以航班为例,从出发城市到目标城市区域内各段最远的航班

//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语言代码,搜索算法--爬山法 (代码示例)相关推荐

  1. 爬山搜索法c语言代码,模拟退火算法和爬山算法 – 算法大全

    ##一. 爬山算法 ( Hill Climbing ) 介绍模拟退火前,先介绍爬山算法.爬山算法是一种简单的贪心搜索算法,该算法每次从当前解的临近解空间中选择一个最优解作为当前解,直到达到一个局部最优 ...

  2. C语言局部搜索算法(爬山法,模拟退火法,遗传算法)求解八皇后问题

    C语言局部算法求解八皇后问题 写在前面 八皇后问题及局部搜索算法 爬山法(hill-climbing searching) 算法介绍 代码实现 退火法(simulated annealing) 算法介 ...

  3. 语言小型心形图案代码_c语言心形告白代码实现

    c语言心形告白代码实现 1.彩色告白 include include include include define U 0.1 define V 0.053 void SetColor(unsigne ...

  4. 真分数c语言,C语言列出真分数序列代码及解析

    原标题:C语言列出真分数序列代码及解析 按递增顺序依次列出所有分母为60,分子小于60的最简分数. 分子.分母只有公因数1的分数叫做最简分数或者说分子和分母是互质数的分数,叫做最简分数,又称既约分数, ...

  5. f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码

    f2py支持在fortran语言中调用其他Fortran函数或C代码或Python代码 分类: Python Numpy_Scipy fortran MinGW_GCC_Boost f2py 2012 ...

  6. c语言万年历查询程序代码,C语言 万年历程序(示例代码)

    C语言 万年历程序 原代码:[email protected]:~/c++$ cat 123.c #include #define Mon   1 #define Tues  2 #define We ...

  7. c++代码表白_推荐!在浪漫的日子里程序猿如何用C语言实现520表白代码

    跨年,新年是浪漫的好日子这篇文章主要为大家详细介绍了C语言实现520表白代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下.告白的代码如下,献丑献丑: #include #include int ...

  8. ISO语言代码和国家代码+Locale常量+ISO货币符号

    [1]ISO语言代码和国家代码 [2]Locale常量 [3]ISO货币符号

  9. c++心形代码_c语言心形告白代码实现

    c语言心形告白代码实现 1.彩色告白 include include include include define U 0.1 define V 0.053 void SetColor(unsigne ...

最新文章

  1. UWA官方Demo新增《小米超神》,全面揭秘重度手游的性能表现!
  2. Python入门100题 | 第041题
  3. 无线网络渗透测试-Gerix Wifi Cracker破解无线网络
  4. python连接oracle导出数据文件
  5. Useful websites for library
  6. ASP.Net_配置文件
  7. 二阶矩阵乘法C语言,c语言矩阵相乘
  8. django-模板的继承
  9. python中的and_我想问下python中 逻辑与:“”和“and”的区别
  10. m_pRecordset-Open
  11. Study 7 —— CSS美化背景和边框
  12. 庖丁解牛之spring源码系列一
  13. 计算机财务应用实验心得,金蝶财务软件实训心得.doc
  14. ccsk matlab,一种CCSK解调预处理方法与流程
  15. STC15单片机实战项目 - 系统评估
  16. 学习Android笔记
  17. HTML开发者工具抓取所有图片,利用Chrome开发者工具功能进行网页整页截图的方法...
  18. 餐馆点餐系统(Java GUI + mysql)
  19. 如何用机器学习识别猫叫和狗叫声?
  20. 为项目加入第三方字体DS-Digital,并使用

热门文章

  1. 饼图加引导线_【如何在饼形图中添加引导线(Excel)】excle里面一条竖状线
  2. android实现类似在短信图标右上角显示短信个数的效果
  3. you-get的一点修改
  4. 《文明六:Sid Meier's Civilization VI 》的介绍
  5. 信创只是开始_《作业帮高管团队亲笔信:D轮只是开始,一切归零,重新出发》...
  6. 15幅非常有创意的影子摄影作品欣赏
  7. 经典《飞机大战》游戏,难道你不想自己动手开发一个嘛(附源码免费下载)
  8. Docker (四) 容器基本命令
  9. 草图vr3.6许可证服务器安装失败,VRay3.6无法获得许可-200
  10. msde2000修改服务器名,MSDE2000数据库怎么修改SA口令?