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

3.2-A-L1-2-第15讲-冒泡排序 mochen @denglexi

博观而约取 厚积而薄发

Observe extensively but select wisely; accumulate deeply but release sparingly.

每次比较两个相邻的元素,如果它们的顺序错误就把它
们交换过来。

每一轮进行两两比较,将该轮中最大/最小的值冒出来。

冒泡程序核心代码:

int a[5]={5,4,3,2,1};
for(int i=0;i<4;i++){
	//TODO
	for(int j=0;j<4;j++){
		if(a[j]>a[j+1]) swap(a[j],a[j+1]);
	}
}
for(int i=0;i<5;i++){
	//TODO
	cout<<a[i];
}

练习: 

2638 对n个数降序排序
描述

从键盘输入n个数字,将这些数字从大到小降序排序输出。

输入描述

第一行,一个整数n(1≤n≤100);
第二行,n个整数,使用空格隔开,每个整数的范围1~1000,存入数组a中。

输出描述

一行n个整数,使用空格隔开,从大到小(降序)排列

样例输入 1 

5
10 137 568 326 754
样例输出 1 

754 568 326 137 10

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a[105]={0},n;
    cin>>n;
    for(int i=0;i<n-1;i++){
        for(int j=0;j<n-i-1;j++){
            if(a[j]>a[j+1]){
                swap(a[j]>a[j+1]);
            }
        }
    }
    for(int i=0;i<n;i++){
        cout<<a[i]<<" ";
    }
    return 0;
}
2639 车厢重组
描述

在一个旧式的火车站旁边有一座桥,其桥面可以绕河中心的桥墩水平旋转。一个车站的职工发现桥的长度最多能容纳两节车厢,如果将桥旋转180度,则可以把相邻两节车厢的位置交换,用这种方法可以重新排列车厢的顺序。
现在需要用这座桥将进站的车厢按车厢号从小到大排列。请编写一个程序,输入初始的车厢顺序,计算用多少步就能将车厢排序。

输入描述

第1行是车厢总数N(1≤N≤1000)。
第2行为N个不同的数,表示初始的车厢号,使用空格隔开。

输出描述

一个整数,最少的旋转次数。

样例输入 1 

4
4 3 2 1
样例输出 1 

6

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a[15]={0},b[15]={0},c[15]={0},m;
    for(int i=0;i<10;i++){
        cin>>a[i];
       
    }
    for(int i=0;i<10;i++){
        if(a[i]%2==0){
            c[i]=a[i];
            m++;
        }
        else{
            b[i]=a[i];
        }
    }
    for(int i=0;i<m-1;i++){
        for(int j=0;j<10-i-1;j++){
            if(b[j]<b[j+1]){
                swap(b[j],b[j+1]);
            }
            
        }
    }
    for(int i=0;i<10-m;i++){
        cout<<b[i];
    }
    for(int i=0;i<m;i++){
        cout<<c[i];
    }
}
1961 整数奇偶排序 
描述

给定10个整数的序列,要求对其重新排序。排序要求:
1.奇数在前,偶数在后;
2.奇数按从大到小排序;
3.偶数按从小到大排序。

输入描述

输入一行,包含10个整数,彼此以一个空格分开,每个整数的范围是大于等于0,小于等于30000。

输出描述

按照要求排序后输出一行,包含排序后的10个整数,数与数之间以一个空格分开。

样例输入 1 

4 7 3 13 11 12 0 47 34 98
样例输出 1 

47 13 11 7 3 0 4 12 34 98

#include <bits/stdc++.h>
using namespace std;
int main(){
    int a[15]={0},b[15]={0},c[15]={0},m;
    for(int i=0;i<=0;i++){
        cin>>a[i];
    }
    for(int i=0;i<10;i++){
        if(a[i]%2==0){
            c[i]=a[i];
            m++;
            }
        else{
            b[i]=a[i];
        }
    }
    for(int i=0;i<10-m-1;i++){
        for(int j=0;j<10-m-i-1;j++){
        if(b[j]<b[j+1])swap(b[j],b[j+1]);
    	}
    }
    for(int i=0;i<m-1;i++){
        for(int j=0;j<m-i-1;j++){
        if(c[j]<c[j+1])swap(c[j],c[j+1]);
    	}
    }
    for(int i=0;i<10-m;i++){
       cout<<b[i];
    }
    for(int i=0;i<m;i++){
       cout<<c[i];
    }
    return 0;
}

相关文章:

  • 实验-基于ESP32-S3的敏捷快速原型开发
  • 创建一个MCP服务器,并在Cline中使用,增强自定义功能。
  • 形象生动讲解Linux 虚拟化 I/O
  • 【ComfyUI】[进阶工作流] 高级采样器与Refiner的工作流优化
  • python django
  • Nginx配置详解
  • 加入二极管的NE555 PWM 电路
  • 使用python实现线性回归
  • 修改DOSBox的窗口大小
  • 启动你的RocketMQ之旅(四)-Producer启动和发送流程(下)
  • 国产开源AI平台Cherry Studio详解:联网搜索升级与ChatBox对比指南
  • spring.profiles.active和spring.profiles.include的使用及区别说明
  • 基于html的俄罗斯方块小游戏(附程序)
  • MCAL-I/O驱动
  • 考研408数据结构第三章(栈、队列和数组)核心易错点深度解析
  • 01_NLP基础之文本处理的基本方法
  • 附录-Python — 包下载缓慢,配置下载镜像
  • 河南理工XCPC萌新选拔赛
  • SEO长尾词优化进阶法则
  • 【3天快速入门WPF】11-附加属性
  • 为学校网站做网站推广策划书/什么是网络营销策划
  • 太原网页设计公司是销售吗/优化网站排名需要多少钱
  • 公司网站开发之main区域(2)/报个计算机培训班多少钱
  • wordpress编辑分类/沈阳seo关键字优化
  • 基于c 的网站开发/百度一下你就知道
  • 山西省住房和城乡建设厅网站报名/seo研究中心南宁线下