查找排序编程题——二分查找+冒泡排序‍♀️

news2024/11/24 8:43:10

目录

7-1 二分查找

输入格式:

输出格式:

输入样例:

AC: 

7-2 冒泡法排序

输入格式:

输出格式:

输入样例:

输出样例:

AC: 

附:

分享🌞 :

前途与玫瑰 来日与方长 你坚持的东西总有一天会反过来拥抱你


7-1 二分查找

分数 20

利用二分查找找出所给出的数在数组中的下标

输入格式:

第一行输入n和m表示数组有n个数据,m表示要对m个数进行查找

输出格式:

所有输出在一行完成,行末没有多余空格和多余回车。

输入样例:

5 5
1 2 3 4 5
1 2 3 4 5```

### 输出样例:
```out
0 1 2 3 4

AC: 

#include<bits/stdc++.h>
using namespace std;

int n,m;

int main()
{
    std::ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);

    cin>>n>>m;
    int a[n+1];
    int flag=1;
    for(int i=0;i<n;i++)
        cin>>a[i];
    while(m--)
    {
        int x;
        cin>>x;
        int l=0,r=n-1;
        while(l<r)
         {
             int mid=l+r+1>>1;
            if(a[mid]<=x) l=mid;
            else r=mid-1;
       }
        if(flag){
            cout<<l;
            flag=0;
        }
        else
            cout<<" "<<l;
    }
}

7-2 冒泡法排序

将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。

本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。

输入格式:

输入在第1行中给出N和K(1≤K<N≤100),在第2行中给出N个待排序的整数,数字间以空格分隔。

输出格式:

在一行中输出冒泡排序法扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。

输入样例:

6 2
2 3 5 1 6 4

输出样例:

2 1 3 4 5 6

AC: 

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,k;
    cin>>n>>k;
    int a[n+1];
    for(int i=0;i<n;i++)
        cin>>a[i];
    for(int i=0;i<k;i++)
    {
        int flag=0;
        for(int j=0;j<n-1-i;j++){
            if(a[j]>a[j+1]){
                swap(a[j],a[j+1]);
                flag=1;
            }
        }
        if(flag==0) break;
    }
    for(int i=0;i<n;i++)
    {
        if(!i) cout<<a[i];
        else cout<<" "<<a[i];
    }
}

附:

二分查找是一种在有序数组中查找某个元素的算法。它的基本思想是每次将待查找的区间缩小一半,具体做法如下:

  1. 将数组的中间元素与待查找的元素进行比较。
  2. 如果中间元素比待查找的元素大,则在数组的左半部分继续查找;如果中间元素比待查找的元素小,则在数组的右半部分继续查找。
  3. 重复步骤 1 和步骤 2,直到找到待查找的元素或者确定数组中不存在待查找的元素。

下面是二分查找的模板代码:

int binarySearch(int[] array, int target) {
    int left = 0;
    int right = array.length - 1;

    while (left <= right) {
        int mid = left + (right - left) / 2;
        if (array[mid] == target) {
            return mid;
        } else if (array[mid] < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }

    return -1;
}

 

冒泡排序是一种简单的排序算法,它的基本思想是通过多次遍历数组,每次比较相邻的两个元素,如果它们的顺序错误就交换位置。每次遍历都能确保最大的元素到达了数组的末尾。

下面是冒泡排序的模板代码:

void bubbleSort(int[] array) {
    for (int i = 0; i < array.length - 1; i++) {
    for (int j = 0; j < array.length - i - 1; j++) {
                if (array[j] > array[j + 1]) {
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                }
            }
        }
}

分享🌞 :

前途与玫瑰 来日与方长 你坚持的东西总有一天会反过来拥抱你🌈🌈🌈

 

 

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

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

相关文章

尝试使用LTTng+TraceCompass分析一下进程周期偏移

准备工作 我先是在板子里通过LTTng Stream的方式将log保存在了上位机里。 然后在上位机中打开TraceCompass分析log。 导出整理log数据 然后我在events表格中搜索我的进程名&#xff0c;发现主要是sched_switch sched_waking sched_wakeup这三类。 然后我又搜索了一下&#x…

10个最好的WordPress RSS插件比较(2022)

您是否正在为您的网站寻找最好的 WordPress RSS 提要插件&#xff1f; RSS 提要插件可以轻松地自动从其他网站提取内容并将其显示在您的网站上。它们还可用于提高参与度、增加流量和增加页面浏览量。 在本文中&#xff0c;我们将分享我们挑选的可在您的网站上使用的最佳 Word…

远眺捷码智慧乡村方案赋能乡村治理,打造更智慧更宜居的乡村

01.智慧乡村治理重要性 “智慧乡村”是以云计算、大数据应用、地理信息系统网络、物联网技术为核心&#xff0c;通过构建服务于政务管理、农业增收、民生幸福等方面的系统应用平台&#xff0c;将社会基础信息、产业发展、环境监测、医疗卫生、劳动保障、社会管理、公共服务等要…

全面便捷的数据管理能力,助力数据运营降本增效

对于任何企业来说&#xff0c;销售和供应链总是天平秤座的两端。如何放置两个砝码是对企业管理能力的极大考验。今天&#xff0c;让我们来谈谈供应链管理的例子来探讨一下对于报表工具而言&#xff0c;怎么样才能让客户全面、便捷的全局管理数据接入。背景&#xff1a;有序的供…

SPRING-了解4-AOP1

主要理念&#xff1a;不用继承&#xff0c;而是用Java Reflect类中的Proxy来实现对方法的增强 面向切面编程 oop的延续&#xff0c;对业务进行隔离&#xff0c;降低耦合度&#xff0c;目标是不改变原来的代码在主干中增加新功能 比如已经写好登录功能&#xff0c;现在需要加…

【大数据技术】流数据、流计算、Spark Streaming、DStream的讲解(图文解释 超详细)

流数据和流计算 在大数据时代&#xff0c;数据可以分为静态数据和流数据&#xff0c;静态数据是指在很长一段时间内不会变化&#xff0c;一般不随运行而变化的数据。流数据是一组顺序、大量、快速、连续到达的数据序列&#xff0c;一般情况下数据流可被视为一个随时间延续而无…

脑白质WM中的血流动力学响应函数HRF的特性

血流动力学响应函数HRF 估计BOLD信号的血流动力学响应函数(HRF)对于解释和分析与事件相关的fMRI数据至关重要广义线性模型(GLM)假设BOLD信号是真实反应与HRF进行卷积而得到的 一般来说&#xff0c;白质中功能激活的检测灵敏度远低于灰质&#xff0c;并且激活区域一般较小 原因…

[附源码]Nodejs计算机毕业设计健身房管理系统设计Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

J-003 Jetson电路设计之USB设计--NANO XAVIER NX

USB设计1 简介2 框图介绍3 USB HUB设计3.1电源部分3.2 芯片引脚3.3 晶振电路4 电源控制4.4 电源开关电路设计4 调试USB电路设计1 简介 NANO & XAVIER NX提供三路USB接口&#xff0c;其中包含一路调试USB&#xff08;用于镜像下载&#xff09;和一路USB3.2接口。引脚说明: …

编码踩坑——MySQL更新存放JSON的字段、\“ 转义成 “

本篇介绍在执行MySQL线上变更时遇到的问题&#xff0c;表现为"更新JSON字段时&#xff0c;实际更新的值与SQL语句中的值不一致&#xff0c;JSON格式错误"&#xff0c;如下&#xff1b; 问题描述 处理线上问题&#xff0c;需要新插入一条记录&#xff1b;将原JSON粘贴…

Jenkins(2)— 配置webhooks触发器

1、项目配置 项目配置 >> 构建触发器 >> 选择Gitee webhook触发器 生成Gitee WebHook密码&#xff1a;46d678257c0399b105635bcb9722ea09 2、Gitee配置 Gitee项目 >> 管理 >> 配置WebHooks 注意&#xff1a; 由于我的jenkins是部署在本地的&#xff…

element-ui+js+vue——实现图片的放大缩小拖动等功能——技能提升

elementuijsvue——实现图片组件的封装 1. 实现图片的放大缩小 2. 实现图片的拖动功能 3. 实现图片的预览最近同事在写一个关于 图片放大缩小拖动的功能&#xff0c;其实不止是图片&#xff0c;只要是在以下组件中的内容&#xff0c;都是可以支持放大缩小拖动的。 功能&#x…

Web前端项目的跨平台桌面客户端打包方案之——CEF框架

文章目录1、什么是CEF2、测测你电脑里的CEF3、从0开始的CEF入门实例1、什么是CEF CEF是什么 概念 Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件。 CEF的目标是为第三方应用提供可嵌入浏览器支持。CEF隔离底层Chromium和Blink的复杂代码…

靠着数套的Java刷题PDF,成功“混进”腾讯T3

昨晚半夜&#xff0c;一个学Java的老弟突然打电话告诉我他拿到了腾讯T3的offer&#xff0c;说实话&#xff0c;我有点诧异。。。 这老弟也是渣硕一枚&#xff0c;去投岗了腾讯的Java后台开发岗位。等了一个星期后简历被放回池子里了&#xff0c;眼看着提前批马上就要截止了&am…

jsp+ssm计算机毕业设计多媒体课程精品课程网站【附源码】

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JSPSSM mybatis Maven等等组成&#xff0c;B/S模式 Mave…

海量数据小内存!从未出现过的数在哪里

文章目录题目要求1&#xff09;内存 1G2&#xff09;内存 3 KB3&#xff09;内存 有限变量举例题目 现在有 40 亿个无符号整数&#xff0c;无符号整数的范围是 0 ~ 232-1&#xff08;42亿&#xff09;&#xff0c;哪怕 40 亿个数完全不同&#xff0c;在该范围中也总有没有出现…

傻白探索Chiplet,关于EPYC Zen2 的一些理解记录(五)

目录 一、知识铺垫 &#xff08;1&#xff09;Chiplet &#xff08;2&#xff09;Zen架构 &#xff08;3&#xff09;EPYC和Ryzen &#xff08;4&#xff09;EPYC Zen2 二、关于EPYC Zen2里的部件 &#xff08;1&#xff09;内存控制器 &#xff08;2&#xff…

Python本地下载-实例的SQL审计日志

简介&#xff1a;使用阿里云的RDS数据库&#xff0c;开启DAS的数据库治理服务。会产生大量的审计日志。 我们有2T的审计日志数据&#xff0c;保留180天&#xff0c;每小时收费空间&#xff1a;0.008元/GB/小时 计算下来&#xff1a;2x1024x 24x 30 x 0.008 11796 元 解决&…

分类预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络分类预测(语音分类)

分类预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络分类预测(语音分类) 目录 分类预测 | MATLAB实现CNN-LSTM卷积长短期记忆神经网络分类预测(语音分类)基本描述模型结构设计过程参考资料基本描述 传统的语音识别技术,主要在隐马尔可夫模型和高斯混合模型两大”神器“的加持…

[element plus] 分页组件使用 - vue

学习关键语句: 饿了么加组件分页组件 element分页组件 vue3 饿了么分页组件 写在前面 必须要说明的是 , 这篇文章使用的分页组件样式包含了饿了么官方给出警告以后会弃用的部分 但是问题是什么呢? 问题就是我还没找到这个用 vmodel 绑定的使用方法 , 再加上现在也算是有点…