• 欢迎访问废江网站,承蒙遇见 QQ群
  • 本站将致力于推送优质的java知识以及算法,开源代码!

线性表(顺序存储结构)

算法笔记 站点默认 5年前 (2019-09-22) 1127次浏览 已收录 0个评论 扫描二维码
文章目录[隐藏]

线性表的顺序存储结构(数组实现)

自己写的线性表

教材上的标准顺序表

例2.4 有一个顺序表L,假设元素类型是整型,设计一个尽可能高效的算法,以第一个元素为分界线(基准),将所有小于等于它的元素移到该基准的前面,将所有大于它的元素移到该基准的后面。

自己写的

我的想法很简单,只需要从左向右扫描比基准小于等于的数和从右向左扫描大于基准的数,当扫描到则立刻交换,继续扫描,直到两个扫描的标杆相遇。


运行结果:
5 0 2 3 1 3 7 4 6 8
——————————–
Process exited after 0.5798 seconds with return value 0
请按任意键继续. . .


我也就想到了这么一个办法,接下来看看书上给的方法吧。
书上的第一种解法思想和我的差不多,来看第二种
基本思想,i和j分别两个标杆,从表头和表尾出发,设i从左向右找比基准数大于的数,当找到时候将这个数给标杆j,然后标杆j从右向左找小于等于基准的数,当找到的时候给标杆i,当碰面后即停止循环。

有一个顺序表L,假设元素类型为整型,设计一个尽可能高效的算法,将所有的奇数移到到偶数的前面。

为了节约时间,我直接看了书上的两种解法
解法一:类似上面一题的解法一
解法二:标杆i取-1不动,标杆j从从左向右寻找奇数,当找到时直接交换两个标杆的值,标杆j到数组最后长度时,循环结束


3 7 1 5 3 8 2 4 6 0
——————————–
Process exited after 2.87 seconds with return value 0
请按任意键继续. . .


最后就是书上的练习了,续更ing


废江博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:线性表(顺序存储结构)
喜欢 (4)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址