当前位置: 首页 > news >正文

网站如何做国外推广今天时政新闻热点是什么

网站如何做国外推广,今天时政新闻热点是什么,杭州设计公司老板被点火,做外贸网站渠道问题: 星期五的晚上,一帮同事在希格玛大厦附近的“硬盘酒吧”多喝了几杯。程序员多喝了几杯之后谈什么呢?自然是算法问题。有个同事说:“我以前在餐馆打工,顾客经常点非常多的烙饼。店里的饼大小不一,我习惯…

问题:

    星期五的晚上,一帮同事在希格玛大厦附近的“硬盘酒吧”多喝了几杯。程序员多喝了几杯之后谈什么呢?自然是算法问题。有个同事说:“我以前在餐馆打工,顾客经常点非常多的烙饼。店里的饼大小不一,我习惯在到达顾客饭桌前,把一摞饼按照大小次序摆好——小的在上面,大的在下面。由于我一只手托着盘子,只好用另一只手,一次抓住最上面的几块饼,把它们上下颠倒个个儿,反复几次之后,这摞烙饼就排好序了。我后来想,这实际上是个有趣的排序问题:假设有n块大小不一的烙饼,那最少要翻几次,才能达到最后大小有序的结果呢?”

你能否写出一个程序,对于n块大小不一的烙饼,输出最优化的翻饼过程呢?

解决方案:

《编程之美》上面给出的方法是通过递归寻找出最优方案。

递归结束条件有两个:

1)递归步骤超过最大步骤数;

2)已经有序。

但由于递归过程步骤过多,需要对其进行剪枝:

1)定上界:假设每次只将最大的翻到最下面(跟冒泡类似),至多需要2次翻转,总共有n-1个需要翻转(最后一个不用翻了),那么最多需要2*(n-1)次翻转;当然,为了减少更多不必要的遍历,每次找到一个实现了有序的步骤数step,则将max更新为该step。

2)定下界:每次递归时,计算当前所在状态下至少还需要多少次翻转,设为lowerbound, 如果当前已经翻转的步骤数step+lowerbound(已经翻转步骤数+当前状态下至少还需要的步骤数)超过了上届,则可以结束该次递归了。

下面是结合该想法,自己写的一个程序:

//============================================================================
// Name        : 3_version1.cpp
// Author      : yahohi
// Version     :
// Copyright   : All rights reserved
// Description : Ansi-style
//============================================================================#include <iostream>
using namespace std;#define size 5
int array[size] = {1,2,3,4,5};
int nMax = 2*(size - 1);static int move[2*(size - 1)];bool isSorted(int len);
void reverse(int begin, int end);
void println(int a[], int len);
int LowerBound(int a[], int s);void Search(int step)
{int lowerbound = LowerBound(array, size);if ((lowerbound + step) > nMax)return;if (isSorted(size)){cout << endl<< "step: " << step << endl;cout << "More details: " << endl;println(move, step);nMax = step;return;}//每一次都有size-1中翻的方法for (int i = 1;i < size;i ++){reverse(0,i);//翻前i个饼move[step] = i;Search(step + 1);reverse(0,i);//恢复现场}
}int LowerBound(int a[], int s)
{int ret = 0;for (int i = 0;i < s - 1; i ++){if (abs(a[i] - a[i+1]) != 1)ret ++;}return ret;
}bool isSorted(int len)
{bool ret = true;for (int i = 0;i < len-1; i ++){if (array[i] > array[i+1]){ret = false;break;}}return ret;
}void reverse(int begin, int end)
{for (int i = begin;i < (begin+end + 1)/2; i++){int temp = array[i];array[i] = array[end - i];array[end - i] = temp;}
}void println(int a[], int len)
{for (int i = 0;i < len; i ++){cout << a[i] << " ";}cout<<endl;
}int main() {reverse(0,1);reverse(0,2);println(array, size);Search(0);return 0;
}
其中,递归过程中的恢复现场尤为重要!

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/wangicter/archive/2012/04/11/4767361.html

http://www.lbrq.cn/news/2414935.html

相关文章:

  • 咸阳做网站优化天津疫情最新情况
  • 益阳哪里做网站国际新闻最新消息中国
  • 怎么做自己的企业网站关键词点击价格查询
  • 绥化安达网站建设google服务框架
  • 济南著名网站建设seo诊断的网络问题
  • 志愿者网站时长码怎么做qq推广工具
  • 单位网站制作费用报价单深圳网站搜索优化工具
  • wordpress设置上传文件大小限制武汉seo服务外包
  • 免x网站seo是什么岗位
  • 建设网站分析东莞市网络seo推广服务机构
  • 公司如何注册网站营销型网站外包
  • 张家港做网站的推荐免费微信引流推广的方法
  • 广州高端网站建设seo怎么做推广
  • 莱芜在线人才网关键词排名优化工具有用吗
  • 秦皇岛做网站seo如何优化网站推广
  • 淘宝购物返利网站开发最近三天的国际新闻大事
  • 英文垃圾站wordpress外链网盘
  • 网站建设与管理教程 全套上海最近3天疫情情况
  • 用什么软件可以做网站动态千锋教育培训怎么样
  • 网站建设估价近期国内热点新闻事件
  • 哪个平台做网站比较好2345网址导航安装
  • 网站设计合同注意事项seo推广知识
  • 做网站不能有中文字符自媒体平台排名前十
  • 三五互联做的网站怎么样网络营销八大工具
  • 互动网络游戏公司网站建设廊坊关键词优化报价
  • wordpress 页面编辑失败aso优化公司
  • 把自己做的网页发布到网站百度怎么发布自己的信息
  • 点播视频网站怎么建设网络营销成功案例ppt免费
  • 企业中标信息查询网涟源网站seo
  • 网站说服力营销型网站策划 pdf网推平台
  • PyTorch 实现 CIFAR-10 图像分类:从数据预处理到模型训练与评估
  • JavaScript的引入方式和基础语法的快速入门与学习
  • Zetane:让深度学习不再抽象,一键3D可视化
  • 【前端状态更新与异步协调完全指南:React、Vue架构原理与复杂业务场景实战】
  • 企业级安全威胁检测与响应(EDR/XDR)架构设计
  • 【JS逆向基础】数据库之redis