2.6:冒泡、简选、直插、快排,递归,宏

1.冒泡排序、简单选择排序、直接插入排序、快速排序(升序)

程序代码:

  1 #include<stdio.h>2 #include<string.h>3 #include<stdlib.h>4 void Bubble(int arr[],int len);5 void simple_sort(int arr[],int len);6 void insert_sort(int arr[],int len);7 int one_sort(int arr[],int low,int high);8 void output(int arr[],int len);9 void quick_sort(int arr[],int low,int high);10 int main(int argc, const char *argv[])11 {12     int arr[]={23,24,12,5,33,5,34,7};13     int len=sizeof(arr)/sizeof(arr[0]);14 /*  //冒泡排序升序15     Bubble(arr,len);16     //简单选择排序升序17     simple_sort(arr,len);18     //直接插入排序升序19     insert_sort(arr,len);*/20     //快速排序21     quick_sort(arr,0,len-1);22     //输出23     output(arr,len);24     return 0;25 }26 //冒泡排序升序27 void Bubble(int arr[],int len)28 {29     for(int i=1;i<len;i++)30     {31         for(int j=0;j<len-i;j++)32         {33             if(arr[j]>arr[j+1])34             {35                 int t=arr[j];36                 arr[j]=arr[j+1];37                 arr[j+1]=t;38             }39         }40     }41 }42 //输出43 void output(int arr[],int len)44 {45     for(int i=0;i<len;i++)46     {47         printf("%-4d",arr[i]);48     }49     puts("");50 }51 //简单选择排序升序52 void simple_sort(int arr[],int len)53 {54     for(int i=0;i<len-1;i++)55     {56         int min=i;57         for(int j=i+1;j<len;j++)58         {59             if(arr[min]>arr[j])60                 min=j;61         }62         if(i!=min)63         {64             int t=arr[i];65             arr[i]=arr[min];66             arr[min]=t;67         }68     }69 }70 //直接插入排序升序71 void insert_sort(int arr[],int len)72 {73     //有序序列:第一个    无序序列:剩余元素74     for(int i=1;i<len;i++)75     {76         int j;77         int temp=arr[i];//后移,保存第一个插入元素(arr[1])78         for(j=i-1;j>=0&&arr[j]>temp;j--)//依次和有序序列倒叙比较后移79             arr[j+1]=arr[j];80         arr[j+1]=temp;81     }82 }83 //快速排序(基于有序数列)84 //一次排序85 //返回基准值下标(中间值下标)86 int one_sort(int arr[],int low,int high)87 {88     int key=arr[low];89     while(low<high)//low==high结束90     {91         while(low<high&&key<=arr[high])//倒叙比较92             high--;93         arr[low]=arr[high];94         while(low<high&&key>=arr[low])//正序比较95             low++;96         arr[high]=arr[low];97     }98     arr[low]=key;99     return low;
100 }
101 //快排
102 void quick_sort(int arr[],int low,int high)
103 {
104     //判空判一
105     if(low>=high)
106         return;
107     //一次排序
108     int mid=one_sort(arr,low,high);
109     //递归左子序列
110     quick_sort(arr,low,mid-1);
111     //递归右子序列
112     quick_sort(arr,mid+1,high);
113 }  

运行结果:

2.递归函数计算非负整数各个位之和

程序代码:

  1 #include<stdio.h>2 #include<string.h>3 #include<stdlib.h>4 int DigitSum(int n);5 int main(int argc, const char *argv[])6 {7     int n;8     printf("please enter n:");9     scanf("%d",&n);10     if(n<0)11         printf("num error\n");12     else13     {   14         int sum=DigitSum(n);15         printf("%d\n",sum);16     }17     return 0;18 }19 int DigitSum(int n)20 {   21     if(n==0)22         return 0;23     else24         return n%10+DigitSum(n/10);25 }    

运行结果:

3.写一个宏,实现int型整数的二进制位的奇数位和偶数位交换

程序代码:

  1 #include<stdio.h>2 #include<string.h>3 #include<stdlib.h>4 #define SWAP(n) (((n & 0xaaaaaaaa) >> 1) | ((n & 0x55 int main(int argc, const char *argv[])6 {7     int n;8     printf("please enter n:");9     scanf("%d",&n);10     int ret=SWAP(n);11     printf("ret=%d\n",ret);12     //5:0101奇数位为113     //a:1010偶数位为114     //一个整数32位,十六进制:0x55555555,0xaaaaaaaa15     //&:按位与全1为1,其余为016     //0x55555555 & n :保留奇数位17     //0xaaaaaaaa & n :保留偶数位18     //再位运算,奇数位左移1(<<)奇变偶19     //         偶数位右移1 (>>) 偶变奇20     //再按位或|,有1为1,全0为0,合并一起21 22     return 0;23 } 

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/671566.shtml

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

相关文章

Vite 下一代的前端工具链,前端开发与构建工具

一、Vite 简介 官方中文网站&#xff1a;Vite | 下一代的前端工具链 官方定义&#xff1a; Vite&#xff0c;下一代的前端工具链&#xff0c;为开发提供极速响应。 Vue3.4版本&#xff0c;Vue新版本使用Vite构建、开发、调试、编译。 Vite的优势 极速的服务启动 使用原生…

2024PMP考试新考纲-近年PMP真题练一练和很详细解析(3)

今天华研荟继续为您分享和解析PMP真题&#xff0c;一方面让大家感受实际的PMP考试和出题形式&#xff0c;另一方面是通过较详细的解题思路和知识讲解帮助大家最后一个多月有效备考&#xff0c;一次性3A通过2024年PMP考试。 2024年PMP考试新考纲-近年真题随机练一练 (注&#x…

企业邮箱是什么?企业邮箱百科

本文将为大家讲解&#xff1a;1、企业邮箱的定义&#xff1b;2、企业邮箱的主要功能特点&#xff1b;3、企业邮箱如何选择和部署&#xff1b;4、企业邮箱的运营与维护&#xff1b;5、企业邮箱在实际工作中的应用与挑战&#xff1b;6、2024年最新五大企业邮箱盘点   下面提到的…

Redis——面试+思想+应用

文章目录 简介Redis基本介绍&#xff1a;性能&#xff1a;持久性和复制&#xff1a;补充——重点&#xff1a;Redis额外支持的操作&#xff1a; 使用场景&#xff1a;与Java的集成&#xff1a;Redis集群Redis Sentinel优点&#xff1a;缺点&#xff1a;适用场景&#xff1a; Re…

qt在pro文件中设置utf-8编码

在 Qt 的 .pro 文件中设置使用 UTF-8 编码&#xff0c;可以通过在 .pro 文件中添加以下内容来实现&#xff1a; QMAKE_CXXFLAGS -source-charset UTF-8 QMAKE_CXXFLAGS -execution-charset UTF-8这样设置后&#xff0c;Qt 会将源代码和执行时的字符集都设置为 UTF-8 编码。这…

Redis缓存高可用集群

Redis集群方案 哨兵集群 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态&#xff0c;如果master节点异常&#xff0c;则会做主从切换&#xff0c;将某一台slave作为master&#xff0c;哨兵的配置略微复杂&#xff0c;并且性能和高可用性等各…

大语言模型训练数据集(1)

CLUECorpusSmall CLUECorpusSmall包含新闻、社区互动、维基百科、评论语料。原始数据和细节描述在这里 语料 链接 CLUECorpusSmall---- https://share.weiyun.com/sC6PMhxx CLUECorpusSmall (BERT格式)---- https://share.weiyun.com/9SPPGUOK News Commentary v13 (ZH-EN) Ne…

sql非查询知识点(增删改-crud没有r)

1.建库 create database database_name 2.使用该数据库 use database_name 3.建表 3.1普通建表 create table if not exists actor(actor_id smallint(5) not null primary key comment "主键id",first_name varchar(45) not null comment "名字",last…

双非本科准备秋招(18.1)—— 力扣二叉树

1、404. 左叶子之和 方法一&#xff1a; 可以在父节点判断一下&#xff0c;如果左子树不为null&#xff0c;并且左子树没有左右子树&#xff0c;说明这是个左叶子节点。 class Solution {public int sumOfLeftLeaves(TreeNode root) {if(root null) return 0;int LV sumOfL…

鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Rating组件

鸿蒙&#xff08;HarmonyOS&#xff09;项目方舟框架&#xff08;ArkUI&#xff09;之Rating组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Rating组件 提供在给定范围内选择评分的组件。 子组件 无。 接口 Rating(opt…

ERR_SSL_VERSION_OR_CIPHER_MISMATCH

我在namesilo买的域名&#xff0c;coludflare做的解析&#xff0c;华为云的SSL&#xff0c;用宝塔部署的SSL&#xff0c;访问https报错&#xff0c;http却正常&#xff1a; 报错&#xff1a;此网站无法提供安全连接www.hongkong.ioyunxin.top 使用了不受支持的协议。 ERR_SSL_…

Cocos creator 3.x 刚体组件碰撞无效

Cocos creator 3.x 刚体组件碰撞无效 问题描述&#xff1a;只有一个circleCollider2D时&#xff0c;可以在碰撞时正确输出结果&#xff0c;但是当我在外围加了一个circle之后&#xff0c;期望character进入圆圈范围时就触发方法&#xff0c;此时原代码失效 import { _decorat…

gcore服务器设置root账号密码登录

这个厂商很奇怪&#xff0c;默认只能用centos用户与公钥登录&#xff0c;但是这样有时候很麻烦。 他默认开启了SELinux&#xff0c;和强制ssh密钥登录。 下面所有操作在root模式下进行 SELinux设置为兼容模式 setenforce 0vi /etc/selinux/config然后将文件中的SELINUXenfo…

k8s-configMap

概念 ConfigMap 是一种 API 对象&#xff0c;用来将非机密性的数据保存到键值对中。使用时&#xff0c; Pod 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。 ConfigMap 将环境配置信息和容器镜像解耦&#xff0c;便于应用配置的修改&#xff0c;官网建议保存的数据…

Vue+Koa项目完整上线流程中遇到的问题

程序员有时候 “提笔忘字”, 以下是此次过程中遇到的问题流水账, 按顺序记录的, 不再细分什么前端后端了. 有些问题可能过于简单, 勿喷! 1, Koa 的 get, post 请求怎么获取参数 get 类请求: 直接使用 ctx.query 来获取前端传递来的参数 post 类请求: 需要使用到 koa-bodypar…

阿里云服务器centos_7_9_x64位,3台,搭建k8s集群

目录 1.环境信息 2.搭建过程 2.1 安装Docker源 2.2 安装Docker 2.3 安装kubeadm&#xff0c;kubelet和kubectl 2.4 部署Kubernetes Master(node1) 2.5 安装Pod网络插件&#xff08;CNI&#xff09; 2.6 加入Kubernetes Node 2.7 测试kubernetes集群 3.部署 Dashboard…

pytorch tensor维度变换

目录 1. view/reshape2. squeeze/unsqueeze3. expand 扩展4. repeat5 .t转置6. transpose7. permute 1. view/reshape view(*shape) → Tensor 作用&#xff1a;类似于reshape&#xff0c;将tensor转换为指定的shape&#xff0c;原始的data不改变。返回的tensor与原始的tensor…

【Linux系统学习】1.初识Linux

初识Linux 操作系统概述 初识Linux 虚拟机介绍 VMware WorkStation安装 1.操作系统概述 了解操作系统的作用 了解常见的操作系统 1.1 硬件和软件 计算机由哪两个主要部分组成&#xff1f; 硬件&#xff1a;计算机系统中由电子&#xff0c;机械和光电元件等组成的各种物理装置的…

小红的字符串中值

题目描述: 小红定义一个长度为奇数的字符串的“中值”为中间那个字符。例如"kou"的中值是o。 现在小红拿到了一个字符串&#xff0c;她想知道某个字符是多少个子串的中值。你能帮帮她吗&#xff1f; 输入描述: 输出描述: 一个整数&#xff0c;代表中值为chr的连续子串…

2024/02/06

画出TCP三次握手和四次挥手的示意图 三次握手 四次挥手 并且总结TCP和UDP的区别 TCP: TCP提供面向连接的&#xff0c;可靠的数据传输服务传输过程中&#xff0c;数据无误、数据无丢失、数据无失序、数据无重复 TCP会给每个数据包编上编号&#xff0c;该编号称之为序列号每个序…