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

news2024/12/23 9:19:20

需求:

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

(异或交换法)

代码实现:

#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.coloradmin.cn/o/1127298.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何判断LED透明屏质量好坏?

要判断LED透明屏的质量好坏&#xff0c;您可以考虑以下几个关键因素&#xff1a; 焊点品质。焊点饱满的证明焊接工艺好&#xff0c;亮度高的透明屏&#xff0c;证明焊锡用的好&#xff1b;品质不好的是虚焊&#xff0c;容易出现接触不良现象。 灯珠温度。点亮一段时间后&#x…

如何删除重复文件?简单操作法方法盘点!

“我之前传文件的时候好像传了很多重复的&#xff0c;导致这些文件占用了我大量的内存&#xff0c;有什么方法可以快速删除这些重复的文件吗&#xff1f;感谢&#xff01;” 随着时间的推移&#xff0c;我们的电脑中常常会积累大量的重复文件&#xff0c;这不仅占用宝贵的存储空…

竞赛选题 深度学习人脸表情识别算法 - opencv python 机器视觉

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习人脸表情识别系…

Allegro教学:Assembly层和Silkscreen元器件编号如何处理?

在电子工程中&#xff0c;PCB的设计和制造最为关键&#xff0c;而PCB上有多种层&#xff0c;有信号层、电源层、接地层和机械层&#xff0c;今天我们来聊聊Assembly层。来聊聊Silkscreen元器件编号问题&#xff0c;希望本文对小伙伴们有所帮助。 首先在回答这个问题前&#xff…

电脑机械硬盘怎么恢复数据?未备份的话,这几个方法请收好

在当今数字化的时代&#xff0c;数据的重要性不言而喻。然而&#xff0c;当电脑机械硬盘遇到数据丢失问题时&#xff0c;很多用户会感到束手无策。那么&#xff0c;电脑机械硬盘怎么恢复数据&#xff1f;在没有备份数据的情况下&#xff0c;这几个方法请收好。 图片来源于AI制作…

云栖大会?全部免费!!抢先一步看!

2023云栖大会定档10月31日&#xff01; 点击链接免费预约云栖门票&#xff1a; 2023云栖大会-领票页面 2023 云栖大会将于 10.31-11.2 在杭州云栖小镇举办&#xff0c;深度拥抱大数据AI 核心技术&#xff0c;见证阿里云大数据AI产品年度重磅发布及创新。开放融合的科技展示平…

用爬虫代码爬取高音质音频示例

目录 一、准备工作 1、安装Python和相关库 2、确定目标网站和数据结构 二、编写爬虫代码 1、导入库 2、设置代理IP 3、发送HTTP请求并解析HTML页面 4、查找音频文件链接 5、提取音频文件名和下载链接 6、下载音频文件 三、完整代码示例 四、注意事项 1、遵守法律法…

swiper3 无缝滚动 + 鼠标悬停停止/继续

html结构&#xff1a; <div class"peopleSwiper"><div class"swiper-container"><div class"swiper-wrapper"><div class"swiper-slide"><img src"images/people01.png"></div><di…

计算机组成原理——解决了我的一些困惑

这个是复习408时&#xff0c;临时起意&#xff0c;把这些问题记录下来&#xff0c;我现在复习了一半有余&#xff0c;于是把这些发布出来&#xff08;如果后面有新的&#xff0c;我会在这里面进行更新&#xff09; 1、代码中的——类型转换&#xff08;int -> short&#xf…

客户保留是什么意思?

任何一家企业&#xff0c;都需要去思考在销售过程中有多少客户是有效的&#xff1f;又有多少客户是可以保留的&#xff1f;初具规模的企业通过CRM客户管理系统只一味的开发新客户&#xff0c;而忽略客户保留&#xff0c;反而会造成资源的浪费。那么我们常说的客户保留是什么意思…

18 - 如何设置线程池大小?

还记得在 16 讲中说过“线程池的线程数量设置过多会导致线程竞争激烈”吗&#xff1f; 今天再补一句&#xff0c;如果线程数量设置过少的话&#xff0c;还会导致系统无法充分利用计算机资源。那么如何设置才不会影响系统性能呢&#xff1f; 其实线程池的设置是有方法的&#…

出差学小白知识No5:|Ubuntu上关联GitLab账号并下载项目(ssh key配置)

1 注冊自己的gitlab账户 有手就行 2 ubuntu安装git &#xff0c;并查看版本 sudo apt-get install git git --version 3 vim ~/.ssh/config Host gitlab.example.com User your_username Port 22 IdentityFile ~/.ssh/id_rsa PreferredAuthentications publickey 替换gitl…

python实现批量pdf转txt和word

文章目录 背景需求环境安装完整代码效果 背景需求 已经获取到了大量的pdf在download文件夹中&#xff0c;但是我需要的是txt文件和word文件&#xff5e; 环境安装 pip install pdf2docx pdfminer.six完整代码 # pip install pdf2docx pdfminer.siximport os from pdf2docx …

【LeetCode刷题-数组】--27.移除元素

27.移除元素 class Solution {public int removeElement(int[] nums, int val) {int slow 0,fast 0,n nums.length;while(fast < n){if(nums[fast] ! val){nums[slow] nums[fast];slow;}fast;}return slow;} }

Real3D FlipBook jQuery Plugin 3.41 Crack

Real3D FlipBook 和 PDF 查看器 jQuery 插件 - CodeCanyon 待售物品 实时预览 截图 视频预览 Real3D Flipbook jQuery 插件 - 1 Real3D Flipbook jQuery 插件 - 2 Real3D Flipbook jQuery 插件 - 3 新功能 – REAL3D FLIPBOOK JQUERY 插件的 PDF 到图像转换器 一款用于将…

在亚马逊购买产品时怎么选择自动收货方式

在亚马逊购买产品时&#xff0c;通常可以在下单时选择不同的收货方式&#xff0c;包括自动收货方式。以下是一般的购买流程&#xff1a; 登录亚马逊账号&#xff1a;打开网站&#xff0c;登录账号&#xff0c;如果没有账号&#xff0c;可以先创建一个。 浏览和添加商品&#…

Java JSON字符串转换成JSONArray对象,遍历JSONArray

JSON字符串转换成JSONArray对象&#xff0c;遍历JSONArray&#xff1a; // 一个未转化的字符串 String str "[{name:a,value:aa},{name:b,value:bb},{name:c,value:cc},{name:d,value:dd}]" ;// 首先把字符串转成 JSONArray 对象 JSONArray jsonArray JSONArray.p…

初探亚马逊 AI 编程助手 CodeWhisperer

前言 4月18日&#xff0c;亚马逊云科技宣布&#xff0c;实时 AI 编程助手 Amazon CodeWhisperer 正式可用,同时推出的还有供所有开发人员免费使用的个人版&#xff08;CodeWhisperer Individual&#xff09;。Amazon CodeWhisperer 是一个通用的、由机器学习驱动的代码生成器&…

Windows下 MySql 5.7授权远程登陆

1.用管理员身份打开mysql Client 2.输入密码登录 3.使用mysql数据库&#xff0c;输入“use mysql” 4.查看当前服务中使用的用户 select host,user form user; 5.授权 grant all privileges on *.* to 用户名% identified by 密码 with grant option; 6.成功后&#xff0c;刷…

众和策略:612家公司三季报折射经济复苏力度

超七成前三季度效果同比添加 近三成第三季度效果环比添加 Choice数据闪现&#xff0c;到10月23日&#xff0c;已有612家A股公司宣告前三季度效果或效果预告&#xff0c;其间跨越七成公司结束同比添加&#xff0c;近三成公司第三季度结束了效果环比添加&#xff0c;充分彰显出中…