#大二上数据结构#由全排列引申开去

要自己写个全排列,先是自己想,gg了,gg的点就是swap那里不懂,看了大佬的,懂了。一天之后回来写,手边还有一堆事但是明天就要上课了所以先写这个。

看了大佬的代码,差不多懂了。之前最不懂的,是那个swap()交换函数,因为要不断地“独立”出一个来,而独立出的数,是不同的,所以要用到交换函数,不断地和后方交换同时向后逼近。大佬程序:点击打开链接

swap那里用到了引用参数,这是java没有的,于是去查了查这个引用参数,形式参数和引用参数对比看这里:点击打开链接 和这里:点击打开链接  (知识点1 get)

然后我这个人看搜索结果总是看好多个,于是发现了全排列的其余写法。

首先看这里:点击打开链接   这里用的是个指针,嗨呀,于是去看指针的相关内容,这里:点击打开链接 (指针和引用的区别)还有这里:点击打开链接 我的妈呀,没怎么懂,但是有看到指针所指向的地址,就是a的地址,所以那里用指针也没差??叹个气,应该是这样子吧,指针略难,留下专门研究。

然后,又想到全排列的java写法,swap貌似和c++是不一样的,看这里:点击打开链接  重点是交换地时候也是用的形式参数,用java手写了一下,java的形参也不会改变传入的值的真实内容,是把值copy过去了而不是地址。

那边博客皮肤更新中,先去看一下之前打开的栈堆的内容。先看这里:点击打开链接  大体了解了堆栈咋回事,然后这里的堆栈和数据机构中的堆栈还特么不是一回事,好了,去看数据结构中的堆栈:点击打开链接    点击打开链接   理解起来不难,就是拿来用的。

好了这里看完了再回去看java中形参的处理方式,引用传递,就是传递对象,是new出来的,堆内存里,是地址,所以不是copy的值,所以真正的改变了。那么回去看Java的全排列,先看一下数组的初始化方式的区别:点击打开链接   

关于是否是因为静态的初始化而导致的是直接交换,貌似是,因为上面的c++引用参数就是,留下试一试日后。

这篇先到这里,还有比赛没做完,这周末估计就肝这个了……英语日常啊,叹个气,希望别落下吧。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值