C语言一些逆置算法

目录

整数逆置

数组逆置

矩阵转置


整数逆置

如7234变为4327

复制代码
int Reversed(int n){
	int x,reversed_n=0;
	while(n!=0){
		x=n%10;		
		reversed_n=reversed_n*10+x;
		n=n/10;
	}
	return reversed_n;
}

数组逆置

将数组{1,2,3,4,5,6}逆置为{6,5,4,3,2,1}

复制代码
void Reverse(int a[],int l,int r){
	while(l<r){
		int temp;
		temp=a[l];
		a[l]=a[r];
		a[r]=temp;
		l++;
		r--;
	}	
}

利用数组逆置的性质,然后我们知道(A-1B-1)-1 = BA ,可以用这个性质实现循环左移函数

cpp 复制代码
void Converse(int a[],int num,int len){	//num是移动位数,len是数组长度
	Reverse(a,0,num-1);    //A逆
	Reverse(a,num,len-1);    //B逆
	Reverse(a,0,len-1);    //然后AB整体逆就能得到BA
} 
//主函数
int a[8]={1,2,3,4,5,6,7,8};
Converse(a,3,8);	//循环左移三位

矩阵转置

以对角线为对称交换两个元素

cpp 复制代码
int temp;
for (i = 0; i < n; i++) {		//两个for循环遍历上三角元素
     for (j = i + 1; j < n; j++) {	//上三角与下三角交换
          temp = a[i][j];
          a[i][j] = a[j][i]; 
          a[j][i] = temp;
      }
}
相关推荐
AlenTech1 分钟前
595. 大的国家 - 力扣(LeetCode)
算法·leetcode·职场和发展
橘颂TA2 分钟前
【剑斩OFFER】算法的暴力美学——力扣 433 题:最小基因变化
数据结构·c++·算法·哈希算法
移幻漂流2 分钟前
C/C++内存掌控之道:从内存泄漏到零开销抽象的进阶之路
java·c语言·c++
橘颂TA2 分钟前
【剑斩OFFER】算法的暴力美学——力扣 1926 题:迷宫中离入口最近的出口
c++·算法·结构与算法
iAkuya4 分钟前
(leetcode)力扣100 47从前序与中序遍历序列构造二叉树(迭代,递归)
算法·leetcode·职场和发展
smj2302_796826526 分钟前
解决leetcode第3816题.删除重复字符后的字典序最小字符串
python·算法·leetcode
十八岁讨厌编程7 分钟前
【算法训练营 · 二刷总结篇】 数组与字符串部分
算法
进击的小头16 分钟前
Git在C项目中的分支策略和规范
c语言·开发语言·git
玖日大大16 分钟前
随机森林算法原理及实战代码解析
算法·随机森林·机器学习
历程里程碑20 分钟前
哈希1:两数之和:哈希表优化指南
java·开发语言·数据结构·c++·算法·哈希算法·散列表