时间:2021-05-20
算法
Reverse Array (数组翻转)
code
void reverse(int array[], int left, int right){ int l, r; for (l = left, r = right; l < r; l++, r--) { array[l] = array[l] ^ array[r]; array[r] = array[l] ^ array[r]; // l ^ r ^ r = l ^ 0 = l. array[l] = array[l] ^ array[r]; // l ^ r ^ l = r ^ 0 = r; }}上述代码通过异或运算来高效实现变量值的交换,请记住:
循环左移
假设我们循环左移n位,则实现的步骤是:
以上步骤的顺序也可以改为step2 -> step1 -> step3.
code:
reverse(array, 0, left_shift_num - 1);reverse(array, left_shift_num, array_size - 1);reverse(array, 0, array_size - 1);循环右移
假设我们循环右移n位,则实现的步骤是:
以上步骤的顺序也可以改为step2 -> step1 -> step3.
code:
reverse(array, 0, array_size - right_shift_num - 1);reverse(array, array_size - right_shift_num, array_size - 1);reverse(array, 0, array_size -1);以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C语言数据结构之顺序数组的实现以下为展示顺序数组的示例:1.用C语言实现的版本#include#include/*flo
如下所示:#includeintmain(){intnum[5],num1[5];inti,j,k=1;intt,n;print
数据结构C语言实现循环单链表的实例实例代码://=========杨鑫========================////循环单链表的实现#include#
数据结构之数组翻转的实现方法以下为实现数组翻转的方法:1.用c语言实现的版本#include#defineM20voidfun(int*x,intn){int*
C语言实现简登录和注册功能,供大家参考,具体内容如下C语言实现注册登录使用链表使用文件版本二:利用链表此版本使用的链表,第一个版本使用的是数组数组版本连接这里我