程序设计实践--排序(1)

1、插入排序(一个数组)

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5;
int a[N];
int n;
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){int v=a[i];int j=i-1;while(j>=1&&a[j]>v){a[j+1]=a[j];j--;}a[j+1]=v;printf("第%d轮插入排序的结果为",i);for(int k=1;k<=n;k++){printf(" %d",a[k]);}printf("\n");}return 0;
}

2、插入排序(两个数组)

#include<bits/stdc++.h>
using namespace std;
int n;
int a[15];//原数组
int b[15];//新数组
int main(){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}int len=0;//新数组的当前长度for(int i=1;i<=n;i++){int v=a[i];int j=len-1;while(j>=0&&b[j]>v){b[j+1]=b[j];j--;}b[j+1]=v;len++;printf("第%d轮插入排序的结果为",i);for(int k=0;k<len;k++){printf(" %d",b[k]);}cout<<endl;}return 0;
}

3、堆排序

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5;
int a[N];
int n;
void display2(int s){for(int i=0;i<n;i++){if(i==n-1){cout<<a[i]<<endl;}else{cout<<a[i]<<" ";}}
}
void display3(int u,int v){int lar=u;int left=2*u+1;int right=2*u+2;if(left<v&&a[left]>a[lar]){lar=left;}if(right<v&&a[right]>a[lar]){lar=right;}if(lar!=u){swap(a[u],a[lar]);display3(lar,v);}
}
void display1(){for(int i=n/2-1;i>=0;i--){display3(i,n);}
}
int main(){cin>>n;for(int i=0;i<n;i++){cin>>a[i];}//构建初始堆display1();display2(n);for(int i=n-1;i>0;i--){swap(a[0],a[i]);display3(0,i);display2(n);}return 0;
}

4、排序(快速排序算法)

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N];
int n,m;
void QuickSort(int s,int t){int i=s,j=t;int tmp=a[(i+j)/2];while(i<=j){while(a[j]>tmp)j--;while(a[i]<tmp)i++;if(i<=j){swap(a[i],a[j]);i++,j--;}}if(s<j)QuickSort(s,j);if(i<t)QuickSort(i,t);
}
int main(){cin>>m;while(m--){cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}QuickSort(1,n);for(int i=1;i<=n;i++){cout<<a[i]<<" ";}cout<<endl;}return 0;
}
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N];
int n, m;// 随机选择基准值并分区
int Position(int s, int t) {// 随机选择一个位置与s交换srand(time(NULL));int pos = s + rand() % (t - s + 1);swap(a[s], a[pos]);int i = s, j = t;int tmp = a[s];while (i < j) {while (j > i && a[j] > tmp) j--;a[i] = a[j];while (i < j && a[i] < tmp) i++;a[j] = a[i];}a[i] = tmp;return i;
}// 快速排序主函数
void QuickSort(int s, int t) {if (s < t) {int i = Position(s, t);QuickSort(s, i-1);QuickSort(i+1, t);}
}int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> m;for (int j = 1; j <= m; j++) {cin >> a[j];}QuickSort(1, m);for (int j = 1; j <= m; j++) {cout << a[j] << " ";}cout << endl;}return 0;
}

5、幂(东莞2014初赛第3题)

#include<bits/stdc++.h>
using namespace std;
int a[50];
int k;
int n;
int main(){cin>>n;while(n){a[k]=n%2;n=n/2;k++;}k=k-1;for(int i=k;i>=0;i--){if(a[i]){cout<<2<<" "<<i<<"\n";}}return 0;
}

6、朗读比赛(东莞2010第2题)

#include<bits/stdc++.h>
using namespace std;
int n,s,t,r;
int main() {cin>>n;//s是速度,t是朗读时间,r是休息时间cin>>s>>t>>r;int a=s*t;int b=t+r;int c=n/a;int d=n%a;int e=c*b;if(d>0){int f=(d+s-1)/s;e+=f;}else{e-=r;}cout<<e<<endl;return 0;
}

7、归并排序

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N];
int b[N];  // 临时数组,用于合并
int n;// 合并两个有序子数组
void Merge(int le, int ri, int mid) {int i = le, j = mid + 1;int k = le;// 比较两个子数组的元素,按顺序放入临时数组bwhile (i <= mid && j <= ri) {if (a[i] < a[j]) {b[k++] = a[i++];} else {b[k++] = a[j++];}}// 处理剩余元素while (i <= mid) b[k++] = a[i++];while (j <= ri) b[k++] = a[j++];// 将临时数组b中的有序元素复制回原数组afor (int i = le; i <= ri; i++) {a[i] = b[i];}
}// 归并排序主函数
void MergeSort(int le, int ri) {if (le < ri) {int mid = (le + ri) / 2;MergeSort(le, mid);      // 递归排序左半部分MergeSort(mid + 1, ri);  // 递归排序右半部分Merge(le, ri, mid);      // 合并两个有序部分}
}int main() {cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}MergeSort(1, n);for (int i = 1; i <= n; i++) {cout << a[i] << " ";}cout << endl;return 0;
}

8、统计工龄

#include<bits/stdc++.h>
using namespace std;
const int N=55;
int a[N];
int n,m;
int main() {cin>>n;for(int i=1;i<=n;i++){cin>>m;a[m]++;}for(int i=0;i<=50;i++){if(a[i]){cout<<i<<":"<<a[i]<<endl;}}return 0;
}

9、月饼

#include<bits/stdc++.h>
using namespace std;
const int N=1e3+5;
struct node{double u;double v;
}a[N];
int n,m;
bool cmp(node b1,node b2){return b1.v*b2.u>b2.v*b1.u;	
}
int main() {cin>>n>>m;double sum=0;for(int i=0;i<n;i++){cin>>a[i].u;}for(int i=0;i<n;i++){cin>>a[i].v;}sort(a,a+n,cmp);for(int i=0;i<n;i++){if(a[i].u<m){m-=a[i].u;sum+=a[i].v;}else{sum+=m*a[i].v/a[i].u;m=0;break;}}cout<<fixed<<setprecision(2)<<sum<<endl;return 0;
}

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

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

相关文章

MAC电脑中右键后复制和拷贝的区别

在Mac电脑中&#xff0c;右键菜单中的“复制”和“拷贝”操作在功能上有所不同&#xff1a; 复制 功能&#xff1a;在选定的位置创建一个与原始文件相同的副本。快捷键&#xff1a;CommandD用于在当前位置快速复制文件&#xff0c;CommandC用于将内容复制到剪贴板。效果&…

新能源汽车焊接智能节气阀

在新能源汽车产业迅猛发展的浪潮中&#xff0c;制造工艺的优劣直接关系到车辆的性能、安全与市场竞争力。焊接&#xff0c;作为新能源汽车生产流程里的关键一环&#xff0c;无论是构建车身框架&#xff0c;还是连接电池模组&#xff0c;其质量的好坏都起着决定性作用。而在焊接…

Linux:面试题

1. 什么是中断和异常&#xff1f; 中断&#xff1a;由外部设备&#xff08;如键盘、网卡&#xff09;触发的异步事件&#xff0c;用于通知 CPU 有紧急事件需要处理。 异常&#xff1a;由 CPU 内部执行指令时产生的同步事件&#xff08;如除零错误、缺页异常&#xff09;&#…

linux关闭某端口暂用的进程

查看是哪个端口暂用 sudo netstat -tulpn | grep :80根据图片 显示 80端口暂用的 进程id是 3002 结束进程id为3002的进程 sudo kill -9 3002

【学习心得】Jupyter 如何在conda的base环境中其他虚拟环境内核

如果你在conda的base环境运行了jupyter lab打开了一个ipynb文本&#xff0c;此时选择的内核是base虚拟环境的Python内核&#xff0c;如果我想切换成其他conda虚拟环境来运行这个文件该怎么办&#xff1f;下面我们试着还原一下问题&#xff0c;并且解决问题。 【注】 这个问题出…

React Flow 边的基础知识与示例:从基本属性到代码实例详解

本文为《React Agent&#xff1a;从零开始构建 AI 智能体》专栏系列文章。 专栏地址&#xff1a;https://blog.csdn.net/suiyingy/category_12933485.html。项目地址&#xff1a;https://gitee.com/fgai/react-agent&#xff08;含完整代码示​例与实战源&#xff09;。完整介绍…

ZooKeeper 原理解析及优劣比较

大家好&#xff0c;这里是架构资源栈&#xff01;点击上方关注&#xff0c;添加“星标”&#xff0c;一起学习大厂前沿架构&#xff01; 引言 在分布式系统中&#xff0c;服务注册、配置管理、分布式锁、选举等场景都需要一个高可用、一致性强的协调服务。Apache ZooKeeper 凭…

模糊照片变清晰:照片高清修复 ComfyUI 使用教学

模糊照片变清晰 满心欢喜地翻出旧相册&#xff0c;想重温那些美好的回忆&#xff0c;结果照片却模糊不清&#xff0c;根本看不清当年的模样&#xff1b;又或者精心拍摄了一张超有氛围感的照片&#xff0c;结果因为手抖或者光线问题&#xff0c;变得模糊&#xff0c;无法发朋友圈…

IEEEtran中文献中的作者大于3个时,用et al.省略

latex&#xff1a; 在使用bib文件的时候&#xff0c;当参考文献超过三个作者时&#xff0c;第三个作者后加逗号并接上et al.。我使用的是IEEEtran.bst。 \begingroup \small \bibliographystyle{IEEEtran} \bibliography{newbmyref1} \endgroup1.需要将IEEEtran.bst添加到这个…

Android Studio Kotlin 中的方法添加灰色参数提示

在使用 Android Studio 时&#xff0c; 我发现使用 Java 编写方法后在调用方法时&#xff0c; 会自动显示灰色的参数。 但在 Kotlin 中没有显示&#xff0c; 于是找了各种方法最后找到了设置&#xff0c; 并且以本文章记录下来。 博主博客 https://blog.uso6.comhttps://blog.…

python宠物用品商城系统

目录 技术栈介绍具体实现截图系统设计研究方法&#xff1a;设计步骤设计流程核心代码部分展示研究方法详细视频演示试验方案论文大纲源码获取/详细视频演示 技术栈介绍 Django-SpringBoot-php-Node.js-flask 本课题的研究方法和研究步骤基本合理&#xff0c;难度适中&#xf…

《具身智能机器人:自修复材料与智能结构设计的前沿探索》

在具身智能机器人的研发进程中&#xff0c;自修复材料与智能结构设计无疑是极具挑战性与创新性的关键领域&#xff0c;吸引着无数科研人员投身其中&#xff0c;探寻未知。 传统机器人在复杂多变的环境中执行任务时&#xff0c;一旦材料出现损伤&#xff0c;如外壳刮擦、内部线…

矩阵的秩(Rank)

矩阵的秩&#xff08;Rank&#xff09;是线性代数中的核心概念&#xff0c;表示矩阵中线性无关的行&#xff08;或列&#xff09;的最大数量&#xff0c;反映了矩阵所包含的“独立信息”的多少。以下是其核心要点&#xff1a; 1. 秩的定义 行秩&#xff1a;矩阵中线性无关的行…

麒麟系统编译osg —— 扩展篇

一、背景 前文讲到麒麟系统编译osg&#xff0c;通常情况下会提示&#xff1a; 意思是无法生成插件osgdb_jpeg&#xff0c;需要配置“JPEG_LIBRARY”和“JPEG_INCLUDE_DIR”。 经查&#xff0c;本机不存在jpeglib.h和libjpeg.so&#xff0c;需要另外安装。 二、编译jpeg库 …

【数据仓库面试题合集①】数据建模高频面试题及解析

🧠 面试官爱问什么?——核心考察点 数据建模作为数仓岗位面试的重头戏,考察的不只是模型知识,更是对业务理解、抽象能力和工程落地经验的综合评估。常见题型可分为三类: 概念类:模型类型、建模方法论(如维度建模、范式建模) 场景类:给定一个业务场景进行模型设计(如…

园区无人机智能巡检项目方案

在工业4.0与智慧园区建设加速推进的今天&#xff0c;传统人工巡检的局限性日益凸显&#xff1a;效率低、覆盖范围有限、安全隐患大。而无人机智能巡检技术的崛起&#xff0c;正以其 "高空视角AI大脑全自动作业" 的创新模式&#xff0c;重新定义园区管理标准。本文将深…

【C++】vector:容器的别样风采

目录 vector&#xff1a; vector实例化&#xff1a; vector构造函数&#xff1a; vector对象尾插&#xff1a;v1.push_back() vector迭代器&#xff1a; vector实例化string类型的对象 vector接口: begin()end()//rbegin()rend() resize()&#xff1a; vector&#xff…

大语言模型 15 - Manus 超强智能体 开源版本 OpenManus 案例与原理深入解析

写在前面 Manus 是由中国初创公司 Monica.im 于 2025 年 3 月推出的全球首款通用型 AI 智能体&#xff08;AI Agent&#xff09;&#xff0c;旨在实现“知行合一”&#xff0c;即不仅具备强大的语言理解和推理能力&#xff0c;还能自主执行复杂任务&#xff0c;直接交付完整成…

【node.js】安装与配置

个人主页&#xff1a;Guiat 归属专栏&#xff1a;node.js 文章目录 1. Node.js简介1.1 Node.js的特点1.2 Node.js架构 2. Node.js安装2.1 下载和安装方法2.1.1 Windows安装2.1.2 macOS安装2.1.3 Linux安装 2.2 使用NVM安装和管理Node.js版本2.2.1 安装NVM2.2.2 使用NVM管理Node…

Neo4j(一) - Neo4j安装教程(Windows)

文章目录 前言一、JDK与Neo4j版本对应关系二、JDK11安装及配置1. JDK11下载2. 解压3. 配置环境变量3.1 打开系统属性设置3.2 新建系统环境变量3.3 编辑 PATH 环境变量3.4 验证环境变量是否配置成功 三、Neo4j安装&#xff08;Windows&#xff09;1. 下载并解压Neo4j安装包1.1 下…