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

2024.2.6

1.现有无序序列数组为23,24,12,5,33,5347,请使用以下排序实现编程

   函数1:请使用冒泡排序实现升序排序

   函数2:请使用简单选择排序实现升序排序

   函数3:请使用快速排序实现升序排序

   函数4:请使用插入排序实现升序排序

#include<stdio.h>
#include<string.h>
#include<stdlib.h>//冒泡
void bubble(int arr[],int len)
{for(int i=1;i<len;i++){for(int j=0;j<len-i;j++){if(arr[j]>arr[j+1]){int t=arr[j];arr[j]=arr[j+1];arr[j+1]=t;}}}
}//简单选择
void simple(int arr[],int len)
{for(int i=0;i<len;i++){int min=i;for(int j=i;j<len;j++){if(arr[min]>arr[j])min=j;}if(min!=i){int t=arr[min];arr[min]=arr[i];arr[i]=t;}}
}
//输出
void output(int arr[],int len)
{for(int i=0;i<len;i++){printf("%-4d",arr[i]);}puts("");
}//一次排序,返回基准值下标
int one_sort(int arr[],int low,int high)
{int key=arr[low];while(low<high){while(low<high && key <= arr[high])high--;arr[low]=arr[high];while(low<high && key >=arr[low])low++;arr[high]=arr[low];}arr[low]=key;return low;
}
//快速排序
void quick(int arr[],int low,int high)
{if(low>=high)return;int mid=one_sort(arr,low,high);quick(arr,low,mid-1);quick(arr,mid+1,high);
}//插入排序
void insert_sort(int arr[],int len)
{int i,j;for(i=1;i<len;i++){int temp=arr[i];for(j=i-1;j>=0;j--){if(arr[j]>temp){arr[j+1]=arr[j];}elsebreak;}arr[j+1]=temp;}
}
int main(int argc, const char *argv[])
{int arr[]={23,24,12,5,33,5,34,7};int len=sizeof(arr)/sizeof(arr[0]);bubble(arr,len);output(arr,len);simple(arr,len);output(arr,len);quick(arr,0,len-1);output(arr,len);insert_sort(arr,len);output(arr,len);return 0;
}

2. 写了个递归函数 DigitSum(n),输入一个非负整数,返回组成它的数字之和

例如:调用 DigitSum(1729),则返回 1+7+2+9,它的和是 19

        输入1729,输出 19

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int DigitSum(int num)
{if(num<0)return -1;else if(num>=0 && num<=9)return num;else{int sum=num%10+DigitSum(num/10);return sum;}
}
int main(int argc, const char *argv[])
{int num;printf("please enter num:");scanf("%d",&num);int s=DigitSum(num);if(s==-1)puts("error");elseprintf("s=%d\n",s);return 0;
}

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

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SWAP(num) (((num&0xaaaaaaaa)>>1) + ((num & 0x55555555)<<1))
int main(int argc, const char *argv[])
{int num;printf("please enter num:");scanf("%d",&num);printf("s_num=%d\n",SWAP(num));return 0;
}

相关文章:

  • 艺术创作和生活的关系
  • Docker引擎不同的日志驱动配置以及通过Filebeat采集容器日志的两种解决方案
  • Vue + Element UI el-table + sortablejs 行、列拖拽排序
  • SQL世界之命令语句Ⅲ
  • C语言--------指针(1)
  • [技术杂谈]如何下载vscode历史版本
  • 使用Pillow来生成简单的红包封面
  • freertos 源码分析五 任务调度一
  • 时光峰峦文物璀璨,预防性保护筑安全
  • 鸿蒙4.0.0 安装minitouch
  • 优雅的从HuggingFace下载模型
  • 【算法与数据结构】583、72、LeetCode两个字符串的删除操作+编辑距离
  • Python HTTP隧道在远程通信中的应用:穿越网络的“魔法门”
  • VRRP协议详解
  • Rust开发WASM,浏览器运行WASM
  • 《Javascript数据结构和算法》笔记-「字典和散列表」
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • canvas绘制圆角头像
  • Codepen 每日精选(2018-3-25)
  • ES6简单总结(搭配简单的讲解和小案例)
  • mysql_config not found
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • npx命令介绍
  • October CMS - 快速入门 9 Images And Galleries
  • VUE es6技巧写法(持续更新中~~~)
  • 创建一种深思熟虑的文化
  • 蓝海存储开关机注意事项总结
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 日剧·日综资源集合(建议收藏)
  • 实战|智能家居行业移动应用性能分析
  • 算法---两个栈实现一个队列
  • 通信类
  • 我有几个粽子,和一个故事
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​Python 3 新特性:类型注解
  • !$boo在php中什么意思,php前戏
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (30)数组元素和与数字和的绝对差
  • (6)STL算法之转换
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (windows2012共享文件夹和防火墙设置
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (附源码)计算机毕业设计大学生兼职系统
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • . Flume面试题
  • .apk 成为历史!
  • .NET 解决重复提交问题
  • .net 生成二级域名
  • .NET大文件上传知识整理
  • .net连接MySQL的方法