当前位置: 首页 > news >正文

C算法:使用选择排序实现从(大到小/从小到大)排序数组,且元素交换不可使用第三变量。

需求:

使用选择排序实现从(大到小/从小到大)排序,且元素交换不可使用第三变量

(异或交换法)

代码实现:

#include <stdio.h>
void maopao(int* array,int len,int(*swap)(int a,int b))
{int i,j;for(i=0;i<len-1;i++){for(j=i+1;j<len;j++){if(swap(array[i],array[j])){array[i] ^= array[j];array[j] ^= array[i];array[i] ^= array[j];}}}
}int asc(int a,int b){return a>b;
}int desc(int a,int b){return a<b;
}void printfArray(int* array,int len)
{int i;for(i=0;i<len;i++){printf("%d",array[i]);}printf("\n");
}int main()
{int array[9] = {5, 9, 3, 1, 2, 8, 4, 7, 6};int len = (sizeof(array)/sizeof(int));int mode;printf("please input mode num (1:asc    2:desc)\n");scanf("%d",&mode);switch(mode){case 1:maopao(array,len,asc);printf("asc:\n");break;case 2:maopao(array,len,desc);printf("desc:\n");break;default:printf("input mode num error!\n");break;}printfArray(array,len);return 0;
}

打印:

http://www.lryc.cn/news/204066.html

相关文章:

  • 用mysql客户端操作时,一直提示 Lost connection to MySQL server during query
  • KubeSphere一键安装部署K8S集群(单master节点)-亲测过
  • vue3 element-plus 组件table表格 勾选框回显(初始化默认回显)完整静态代码
  • Redis --- 安装教程
  • 代码阅读:LanGCN
  • 基于Java的校园餐厅订餐管理系统设计与实现(源码+lw+部署文档+讲解等)
  • 使用C#和Flurl.Http库的下载器程序
  • 面试经典150题——Day19
  • TP6首页加载报错 Call to a member function run() on null
  • 洗车小程序源码:10个必备功能,提升洗车体验
  • macOS telnet替代方式
  • 【leetcode】独特的电子邮件地址
  • 解密Java中神奇的Synchronized关键字
  • 微信删除的好友还能找回来吗?盘点5种超实用的方法!
  • Nmap 常用命令汇总
  • 谷歌浏览器最新版和浏览器驱动下载地址
  • [游戏开发][Unity]Unity运行时加载不在BuildSetting里的场景
  • flutter开发实战-hero动画简单实现
  • Spring Boot + EasyUI 创建第一个项目(一)
  • 短视频矩阵系统源码/技术应用搭建
  • 硬核子牙:我准备写一本《带你手写64位多核操作系统》的书!
  • c++访问修饰符与继承关系
  • 【RTOS学习】事件组 | 任务通知
  • 【TES605】基于Virtex-7 FPGA的高性能实时信号处理平台
  • Java Azure开发 使用已有token字符串创建GraphServiceClient
  • 【Qt】消息机制和事件
  • 爬虫模拟用户登录
  • asp.net企业招聘管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio计算机毕业设计
  • 艾泊宇产品战略:假如中国禁止直播带货,网红和店家该如何应对?
  • C#调用C/C++从零深入讲解