这个算法要实现的功能是:给你一群数,删掉第一个数,再把第二个数放到最后,得到新的一群数,再删掉第一个数,再把第二个数放到最后,重复这些操作,直到只剩两个数,删掉第一个数结束,最后显示所有删掉的数。
这里我们以数组a[6]={1,2,3,4,5,6}为例,然后把删掉的数放入数组b[ ]中。
我们先来看看全部的变换过程:
1 2 3 4 5 6
3 4 5 6 2
5 6 2 4
2 4 6
6 4
由此我们可以看出结果b[ 5 ]={1,3,4,2,6},还可以感觉到大概需要两层循环来完成这个算法,外层循环5次,每一次循环表示删掉一个数(把第一个数放入b[ ]数组中),之后把第二个数放到最后,把所有数往前移两位形成一个新的数组,完成这个移位的动作就需要另一次循环了,那么整个程序什么时候停止呢,有很多办法,比如我可以再全部移位之后把最后一个数的再下一位赋为0,那么变换过程如下:
1 2 3 4 5 6 0
3 4 5 6 2 0
5 6 2 4 0
2 4 6 0
6 4 <

该算法描述了一种处理数组的技巧,通过删除第一个元素并将第二个元素移到末尾,直至数组只剩两个元素。以数组a[6]={1,2,3,4,5,6}为例,最终结果为b[5]={1,3,4,2,6}。算法通过两层循环实现,外层循环控制删除过程,内层循环用于元素前移。当a[2]为0时,结束循环。"
139106041,7337247,知识图谱详解:原理、算法与实战,"['知识图谱', '深度学习', '数据科学', '自然语言处理', '大数据', '人工智能']
最低0.47元/天 解锁文章





