/**
* Generates a Gray code sequence for the given number of bits.
* @param {number} n - The number of bits in the Gray code sequence.
* @returns {number[]} - An array of Gray codes in binary format.
* @description
* Gray codes are binary sequences in which two successive values differ in only one bit.
* This function generates a Gray code sequence of length 2^n for the given number of bits.
*
* The algorithm follows these steps:
*
* 1. Initialize an array `grayCodes` to store the Gray codes. Start with [0, 1] for n = 1.
* 2. Iterate from 1 to n:
* a. Calculate `highestBit` as 2^i, where `i` is the current iteration index.
* b. Iterate in reverse order through the existing Gray codes:
* - For each Gray code `code`, add `highestBit | code` to `grayCodes`.
* - This operation flips a single bit in each existing code, creating new codes.
* 3. Return the `grayCodes` array containing the Gray codes in decimal representation.
*
*resources: [GFG](https://www.geeksforgeeks.org/generate-n-bit-gray-codes/)
* @example
* const n = 3;
* const grayCodes = generateGrayCodes(n);
* // grayCodes will be [0, 1, 3, 2, 6, 7, 5, 4] for n=3.
*/
function generateGrayCodes(n) {
if (n <= 0) {
return [0]
}
const grayCodes = [0, 1]
for (let i = 1; i < n; i++) {
const highestBit = 1 << i
for (let j = grayCodes.length - 1; j >= 0; j--) {
grayCodes.push(highestBit | grayCodes[j])
}
}
return grayCodes
}
export { generateGrayCodes }
没有合适的资源?快使用搜索试试~ 我知道了~
javascript-Bit-Manipulation.rar
共18个文件
js:18个
需积分: 1 0 下载量 201 浏览量
2024-09-15
09:51:56
上传
评论
收藏 7KB RAR 举报
温馨提示
javascript-Bit-Manipulation.rar
资源推荐
资源详情
资源评论
收起资源包目录
Bit-Manipulation.rar (18个子文件)
Bit-Manipulation
GenerateSubSets.js 1001B
LogTwo.js 302B
BinaryCountSetBits.js 664B
UniqueElementInAnArray.js 406B
IsPowerofFour.js 693B
test
IsPowerOfTwo.test.js 611B
LogTwo.test.js 162B
BinaryCountSetBits.test.js 988B
UniqueElementInAnArray.test.js 314B
GenerateSubSets.test.js 851B
SetBit.test.js 457B
IsPowerOfFour.test.js 321B
GrayCodes.test.js 516B
NextPowerOfTwo.test.js 433B
IsPowerOfTwo.js 933B
SetBit.js 874B
GrayCodes.js 1KB
NextPowerOfTwo.js 345B
共 18 条
- 1
资源评论
蜡笔小流
- 粉丝: 2330
- 资源: 1180
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功