一年级应用题排队问题讲解
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一年级应用题排队问题讲解
一.题目内容
班级里有N个小朋友,第1到N号他们放到一排队里,其中第一个和最后一个人旁边都没有人,每个小朋友他都知道自己前面和后面有多少个小朋友,你能不能写一个程序,让他们站成一排?
二.题目分析
该题是一道排列组合问题,要求能根据小朋友知道前后有多少人的信息将他们排列成一排,考虑到每个位置的小朋友的情况都不一样,采用贪心策略,每次选取左右最近且人数最少的一端放置小朋友,即让两端人数越接近越有利。
实现思路:
1.设置变量left和right,分别表示人数最少的端点位置,初始从0和N-1开始;
2.循环扫描0~N-1之间的元素,记录最少元素的位置right2和left2;
3.当left2和right2的人数不同时,将两边的最少人数的端点放置小朋友,依次调整left和right端点的位置;
4.当left2和right2的人数相同时,判断right2与right的距离和left与left2的距离,如果right2与right的距离较小,则放置小朋友,将right 指向right2;反之,放置小朋友,left指向left2;
5.循环调整左右端点位置,直到left和right重叠;
6.遍历结束,可获得合适的小朋友排列顺序。