对于N个数,我们把递增自然数(0、1、2、3、……、N)称为顺序数列;对顺序数列中的每一个数,将其二进制倒序后转化为十进制,称为倒叙数列。
下面,以N=8举例,
顺序序列为:
0,1,2,3,4,5,6,7。
顺序序列的二进制序列为:
000,001,010,011,100,101,110,111
对顺序序列的二进制序列每一个元素倒叙:

000,100,010,110,001,101,011,111

对上一序列的每一个元素求十进制,即为倒位叙列:

0,4,2,6,1,5,3,7


更直观的展示:

倒位序列 -----------顺序序列          
0(000)----------- 0(000)                                      
4(100)----------- 1(001)                                      
2 (010)----------- 2(010)                                    
6 (110)----------- 3(011)                                  
1 (001)----------- 4(100)                                       
5 (101)----------- 5(101)                                        
3 (011)----------- 6(110)                                        
7 (111)------------7 (111)   
可以发现,顺序序列的二进制序列,其下一个数是上一个数最低位加1并由低位向高位进位得到,而倒位序列的二进制序列,其下一个数是上一个数在最高位加1并由高位向低位进为而得到的。
 
算法描述:在N个数中,若已知某数的倒序数是J,求下一个倒序数,应先判断J的最高位是否为0,与k=N/2进行比较即可得到结果。如果k>J,说明最高位为0,应把其变成1,即J+N/2,这样就得到倒序数了。如果k<=J,即J的最高位为1,将最高位置为0,即J-N/2,再判断次高位;与k=N/4进行比较,若为0,将其变位1,即J+N/4,即得到倒序数,如果次高位为1,将其化为0,再判断下一位......
#include <iostream>
#include <cstdio>
using namespace  std;int x[16] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int y[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int N = 8;int main()
{int i,j,k;int temp;for(j=0,i=0;i<N-1;i++)    //这里实现了奇偶前后分开排序{if(i<j)                        //如果i<j,即进行变址{temp = x[j];x[j]  = x[i];x[i]  = temp;}k = N/2;                 //求j的下一个倒位序while(j >= k)        //如果k<=j,表示j的最高位为1{j = j-k;                 //把最高位变成0k = k/2;               //k/2,比较次高位,依次类推,逐个比较,直到某个位为0}j = j+k;                //把0改为}//for()for(i = 0 ; i < N ; ++ i){printf("%2d      %2d\n" , i , x[i]) ;}return 0 ;
}

雷德(Rader)算法相关推荐

  1. 深入浅出理解FFT算法。通俗易懂,xilinxIP核仿真

    深入浅出理解FFT算法,通俗易懂,用xilinxIP核心仿真 1.前言:傅里叶变换:时域到频域的转换 FS连续时间周期傅里叶级数->DFS离散傅里叶级数->FT连续时间非周期信号的傅里叶变 ...

  2. python 傅里叶变换_理解快速傅里叶变换算法

    翻译自原文:https://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/ ​ 快速傅里叶变换(FFT)是信号处理和数据分析中最重要的 ...

  3. 多项式乘法运算初级版

    快速傅里叶变换在信息学竞赛中主要用于求卷积,或者说多项式乘法.我们知道,多项式乘法的普通算法时间复杂度 是,通过快速傅里叶变换可以使时间降为,那么接下来会详细介绍快速傅里叶变换的原理. 首先来介绍多项 ...

  4. [模板] 快速傅里叶变换(FFT)

    快速傅里叶变换FFT 多项式 转换 快速傅里叶变换 铺垫 定理 算法构建 IFFT 递归版FFT&IFFT 迭代版FFT&IFFT 蝴蝶效应 Code 后记 多项式 假设有nnn次多项 ...

  5. [转]FFT倒序算法—雷德算法

    转载文章,文字说明部分修改文字错误.补充一些文字以及在程序中加一些注释,原文网址: http://www.xuebuyuan.com/2117668.html 程序部分是借鉴介绍FFT算法程序的文章& ...

  6. 一堆乱七八糟绝不正经的排序算法

    原文 索引 猴子排序 钻石排序(戴蒙德排序) 恶魔排序 珠排序 地精排序(怂货排序) 智能设计排序 1. 猴子排序 (提供者cy1306110516) 猴子排序的思想源自于著名的无限猴子定理. 既然猴 ...

  7. 快速傅里叶变换(FFT)算法【详解】

    快速傅里叶变换(Fast Fourier Transform)是信号处理与数据分析领域里最重要的算法之一.我打开一本老旧的算法书,欣赏了JW Cooley 和 John Tukey 在1965年的文章 ...

  8. DL之R-CNN:R-CNN算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略

    DL之R-CNN:R-CNN算法的简介(论文介绍).架构详解.案例应用等配图集合之详细攻略 目录 R-CNN算法的简介(论文介绍) 0.R-CNN算法流程图 1.实验结果 R-CNN算法的架构详解 R ...

  9. 理解快速傅里叶变换(FFT)算法

     编注:这篇译文由@unblock 和@jingliang 共同完成. 再次推荐:<如果看了此文你还不懂傅里叶变换,那就过来掐死我吧[完整版]> 快速傅里叶变换(Fast Fourie ...

最新文章

  1. mysql中logs库_MySQL Logs
  2. 铜陵新松工业机器人项目_投资10亿元,茶山德威工业机器人和精密模具项目动工...
  3. Java控制语句——for循环
  4. 删除logs mysql_关于删除MySQL Logs的问题记录_MySQL
  5. mysql 级联同步不成功_MySQL级联复制的同步问题(一)
  6. pb 执行存储过程带参数_数据库存储过程
  7. 【C language】动态数组的创建和使用
  8. linux编写复制脚本程,常用的Shell脚本
  9. 简析Kubernetes八大重要特性
  10. LeetCode | 我的LeetCode之旅(持续更新ing)
  11. 原生js实现浏览器全屏和退出全屏
  12. HDU.1004 Let the Balloon Rise
  13. HDU 2553(N皇后问题)
  14. 要重复多少次变成潜意识_潜意识成功法则
  15. android+怎么分享图片大小,Android微信分享图片大于32k进行压缩
  16. 淘宝怎么选品技巧秘籍,做淘宝7分靠选货品
  17. 数据结构编程实践(七)创建哈夫曼树、生成哈夫曼编码、完成图片的压缩与解压缩
  18. Java基础之map总结
  19. HTML实现九九乘法表
  20. 微信小程序怎么打通视频号?只差一个自定义版交易组件

热门文章

  1. 健身行业大洗牌 Keep还会有未来吗?
  2. c语言递推算法微课,高中数学题型方法100讲[微课视频]
  3. 4- word 从任意页面插入页码,前面页面不要页码,以及页码处的横线问题
  4. 有向无环图—拓扑序列
  5. dubbo、dubbox坑集合
  6. Oracle入门学习笔记及练习
  7. 常用String方法大全
  8. pytorch学习最全官网地址
  9. php 正则筛选靓号如AABBCC(连对),abcdef(顺子)等QQ靓号保留
  10. Bugku流量分析题目总结