解题报告 ch1 排序与搜素

本文深入探讨了排序算法、结构体快排、二分法查找、避免开方、模拟冒泡排序等算法应用,以及字符串处理、结构体排序、复杂结构体排序、字符串操作等数据结构实践案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

340 - Master-Mind Hints
  //1.快排的使用
  
10420 - List of Conquests
  //1.struct快排
  int my_compare(const void*a, const void *b){
    return strcmp(((country *)a)->name ,  ((country *)b)->name);
  }
  qsort(&lover[1], country_number, sizeof(lover[1]), my_compare);




10474 - Where is the Marble?
  //1.二分法查找
  int mstart=0,mend=n-1;
  int middle=0;
  while(mstart <= mend){
    middle = (mstart+mend)/2;
    if (data[middle]== need) break;
    else if (data[middle]>need) mend = middle-1;
    else mstart = middle+1;
  }




152 - Tree''s a Crowd
  //避免开方
  for (int j=1; j<=10; ++j){
    if (dist < j*j){ ++treeGraph[j-1]; break;}
  }




299 - Train Swapping
  //模拟冒泡排序,记录冒泡次数
  冒泡排序算法的运作如下:
  1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3.针对所有的元素重复以上的步骤,除了最后一个。
  4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。




120 - Stacks of Flapjacks
  //1.解决思想:
    先找到最大的,然后最大和0对调,然后0和末尾对调
  //2.快速解法:动态规划
    编程之美:一摞饼




156 - Ananagrams
  //1.需要考虑所有可能的输入情况
    当用getchar()时,每一个字符都需要考虑
    尤其当 获取一个单词时, '\0'是必须要添加的
    (可能'#'在最后一个单词最后, e.g  abc#,此时需要将末尾'\0'加上!!)
  //2.结构体的快排


400 - Unix ls
  //1. 字符串格式的处理
  //2. 注意是否越界
  int i=myrow + rows*mycol;
  if (i>=n)  {cout<<endl;break;}
  //3. uva网站崩溃莫名其妙wa 3次,然后隔天提交一样的代码就 ac了 =。=




123 - Searching Quickly
  //#include <string>
  found=str.find("needles are small",found+1,6);
  if (found!=std::string::npos);
  str.replace(str.find(str2),str2.length(),"preposition");




10194 - Football (aka Soccer)
  //1.复杂结构体的快排
  struct myTeam{
  string name;
  int win,tie,lose;
  int goalWin,goalLose;
  int rank;
  myTeam(){win=tie=lose=goalWin=goalLose=rank=0;}
  void clear(){win=tie=lose=goalWin=goalLose=rank=0;}
 };
 //2.快排
 快排的比较函数可以很方便的将多种比较规则融合其中
 从小到大 a-b
 从大到小 b-a


 //3.注意题目细节
 大小写wa了一次


 //4.内置函数
 a = string(s,3,n);//将string从3开始复制n个字符
 #include <cstdlib> 
 int a=atoi('25');




755 - 487--3279
  //1.小结
  各种基本的操作, 读取字符,拆分,合成,利用string,比利用char数组来的安全些,起码不用关心作死的'\0',@.@
  这一题里还是利用了<cstdlib> 中的  qsort, 也就是c语言中的函数,以后再尝试使用 <algorithm>中的工具吧。
  <map>做的映射还是很好用的


10785 - The Mad Numerologist
  //1.思路
  将元音与辅音分别存放在两个数组中,
  然后分别排序
  最后合并输出











































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值