首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求好手点拨:C语言中的“数组复原”的算法实现方法.

2013-01-01 
求高手点拨:C语言中的“数组复原”的算法实现方法...求高手点拨:如果有一个数组,int a[4]{1,2,3,4}采用对这

求高手点拨:C语言中的“数组复原”的算法实现方法...
求高手点拨:
如果有一个数组,int a[4]={1,2,3,4}
采用对这个数组进行“双重循环交换对应元素法”,来进行“排序”,(以进行排列组合的穷举),的话:
①:int buf=0;
②:for(i=0;i<=3;i++){
③:for(j=0;j<=3;j++){
④:buf=a[i];
⑤:a[i]=a[j];
⑥:a[j]=buf;
⑦:}
⑧:}
高手,如果采取这样的方式来“排序”的话,高手,在第④->⑤行代码处,是为了进行“整个数组的排列的可能性的穷举”,
高手,有没有什么办法,能够让整个计算,在进行完“每一次的④->⑥行的"队列重排"后,能够让原数组在面对"④->⑥"所做出的改动"复原"”,(排除使用:
buf=a[i];
a[i]=a[j];
a[j]=buf;
再进行一遍“值的回赋”,这种时间复杂度代价较高的方法外。
还有什么办法?
[解决办法]
看下http://blog.csdn.net/morewindows/article/details/7961256
[解决办法]
值引用产生临时变量离开作用域自动销毁

热点排行