C题目11:数组a[m]排序

news2024/9/24 15:18:06

每日小语

双手,且放下一切劳作,前额,也忘掉忧思,此时此刻我所有的感觉就想沉入安睡。

 自己敲写

这个问题老师上课讲了一种方法,叫做冒泡排序。基本思想是

1.找最小值,放到a[0]

2.从a[1]~a[3]找最小值,放到a[1]

自己敲写的时候,问题首先出在了如何设置一个初始变量上

int arr[5] = {10, 20, 30, 40, 50};
#include <stdio.h>

int main() 
{
    int a[5]={1,4,3,5,2};
    for(int i=0;i>0;i++)
    {
        for(int j=1;j>0;j++)
        {
            if (a[i]>a[j])
            {
                a[i]=a[j];
                a[j]=a[i];
            }
        }
    }
    printf(a);
    return 0;
}

目前代码。问题很多。

#include <stdio.h>

int main() 
{
    int a[5] = {1, 4, 3, 5, 2};
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            if (a[j] > a[j+1])
            {
                int temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
    printf("Sorted Array: %d %d %d %d %d\n", a[0], a[1], a[2], a[3], a[4]);
    return 0;
}
  1. 在外层循环中,i 应该从0开始递增,而不是 i>0。循环条件应为 i<4,因为数组长度为5,下标从0到4。

  2. 在内层循环中,j 应该从0开始递增,而不是 j>0。循环条件应为 j<4

  3. 在交换数组元素的部分,应该是先将较大的元素赋值给临时变量,然后再将较小的元素赋值给较大的元素,最后再将临时变量赋值给较小的元素。

  4. 在使用 printf 输出数组时,需要提供一个格式字符串,例如 "Array: %d %d %d %d %d\n",并提供要输出的数组元素。

  5. 问题还是出在循环,两层循环理解不当。

    当使用冒泡排序算法时,两层嵌套循环的作用是进行比较和交换操作,以便将较大的元素逐步移动到数组的末尾。以下是两层循环的具体作用:

    1. **外层循环(i循环):** 外层循环负责控制每一轮的比较和交换操作。对于长度为 n 的数组,需要进行 n-1 轮比较,确保数组中的所有元素都被正确地排序。外层循环的索引变量通常用 i 表示。

       ```c
       for (int i = 0; i < 4; i++)
       {
           // 内层循环将执行比较和交换操作
       }
       ```

    2. **内层循环(j循环):** 内层循环负责实际的比较和交换操作。在每一轮外层循环中,内层循环从数组的起始位置开始,依次比较相邻的两个元素,并根据需要进行交换。内层循环的索引变量通常用 j 表示。

       ```c
       for (int j = 0; j < 4 - i; j++)
       {
           // 比较和交换操作
       }
       ```

       - `4 - i` 是因为在每一轮外层循环之后,数组的末尾已经是当前轮次中最大的元素,不再需要比较和交换。因此,内层循环的范围在逐渐减小。

       - 比较相邻元素,如果前一个元素大于后一个元素,则交换它们的位置,以确保较大的元素向数组的末尾移动。

    整体来说,两层循环共同工作,通过多次比较和交换,将数组中较大的元素逐步移动到末尾,实现排序的目的。这就是冒泡排序算法的基本思想。

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

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

相关文章

TVS瞬态抑制二极管的工作原理和特点?|深圳比创达电子EMC

TVS二极管一般是用来防止端口瞬间的电压冲击造成后级电路的损坏。防止端口瞬间的电压冲击造成后级电路的损坏。有单向与双向之分&#xff0c;单向TVS一般应用于直流供电电路&#xff0c;双向TVS应用于交流供电电路。 TVS产品的额定瞬态功率应大于电路中可能出现的最大瞬态浪涌…

分享一些简单的英语问候语

昨天和一个朋友聊天&#xff0c;他问我最近有没有某个国家的客户&#xff1f;我说只有一两个&#xff0c;都已经好久没有联系了&#xff0c;上一次问候还是在九月份。他说从十月底开始就收到很多来自当地的询盘&#xff0c;你不妨问下客户最近是否有新的需求&#xff1f; 于是…

如何看待Unity新收费模式?

Unity新收费模式的变化主要在于将收费重心从功能分级收费转变为资源使用量收费&#xff0c;这个改变已经引起了一定的争议和反响。以下是我个人的看法&#xff1a; 优点&#xff1a; 更公平的收费方式&#xff1a;新的收费模式将更加公平&#xff0c;用户只需按照实际使用的数…

【开源】基于Vue.js的婚恋交友网站

项目编号&#xff1a; S 057 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S057&#xff0c;文末获取源码。} 项目编号&#xff1a;S057&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 会员管理模块2.3 新…

SpringBoot : ch04 整合数据源

前言 Spring Boot 是当今最流行的 Java 开发框架之一&#xff0c;它以简洁、高效的特点帮助开发者快速构建稳健的应用程序。在实际项目中&#xff0c;涉及到数据库操作的需求时&#xff0c;我们需要对数据源进行整合。本文将重点介绍如何在 Spring Boot 中整合数据源&#xff…

实时云渲染 助力破解智慧园区痛点困局

智慧园区是运用先进的信息技术&#xff0c;如物联网&#xff08;IoT&#xff09;、大数据、云计算、人工智能、三维可视化等&#xff0c;对园区内的各类设施、资源以及管理进行智能化和数字化升级。其目标是通过科技手段提升园区的运营效率、资源利用率&#xff0c;提供更便捷、…

循环神经网络(RNN)实现股票预测

文章目录 一、前言二、前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;2. 导入数据 四、数据预处理1.归一化2.设置测试集训练集 五、构建模型六、激活模型七、训练模型八、结果可视化1.绘制loss图2.预测3.评估 一、前言 我的环境&#xff1a; 语言环…

防雷接地+防雷工程施工综合方案

一、地凯科技防雷工程接地概述 防雷接地工程是指在建筑物或其他设施上安装防雷装置&#xff0c;以防止雷电对人员、设备和建筑物造成危害的工程。防雷装置主要包括避雷针&#xff08;网&#xff09;、引下线、接地体&#xff08;网&#xff09;等部分&#xff0c;其中接地体&a…

Zookeeper初识及安装配置

文章目录 写在前面一、Zookeeper概念二、下载安装2.1 环境准备2.2 下载上传2.3 解压 三、配置启动3.1 配置zoo.cfg3.2 启动Zookeeper 写在前面 最近接受了一个比较老的分布式项目&#xff0c;用的Zookeeper协调服务&#xff0c;所以虽然相关的服务注册等功能有很多可能更好的代…

技术分享|电商数据接口|淘宝天猫京东商品API接口之数据同步

常见的数据同步/集成场景多发生于不同的存储系统、不同的存储格式&#xff0c;如从 mysql 同步数据至数仓、excel 或 csv 导入数据库中&#xff0c;但是众多数据同步解决方案很少涉及从 http 接口同步数据。 如淘宝、拼多多等电商平台&#xff0c;平台内部不同团队之间的数据打…

4.3、Linux进程(2)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 通过系统调用创建进程--fork函数 结果是什么呢&#xff1f; 为什么会出来三个打印呢? 就是因为父进程调用了fork函数创建出了子进程的task_struct,但是一个进程不止task_struct&#xff0c;还有代码和数据&#xff0c;他们…

JVM基础- 垃圾回收器

基本介绍 Java虚拟机&#xff08;JVM&#xff09;中的垃圾回收器是用来自动管理内存的关键组件。它负责识别并回收不再使用的内存&#xff0c;从而防止内存泄漏。不同的JVM实现提供了多种垃圾回收器&#xff0c;每种回收器都有其特定的使用场景和性能特点。以下是一些常见的JV…

Rust生态系统:探索常用的库和框架

大家好&#xff01;我是lincyang。 今天我们来探索Rust的生态系统&#xff0c;特别是其中的一些常用库和框架。 Rust生态系统虽然相比于一些更成熟的语言还在成长阶段&#xff0c;但已经有很多强大的工具和库支持各种应用的开发。 常用的Rust库和框架 Serde&#xff1a;一个…

Tesco EDI需求分析

Tesco&#xff0c;成立于1919年&#xff0c;是一家全球领先的综合性零售企业&#xff0c;总部位于英国。公司致力于提供高质量、多样化的商品和服务&#xff0c;以满足客户的需求。Tesco的使命是通过创新和卓越的客户服务&#xff0c;为客户创造更美好的生活。多年来&#xff0…

51单片机LED灯渐明渐暗实验

51单片机LED灯渐明渐暗实验 1.概述 这篇文章介绍使用单片机控制两个LED彩灯亮度渐明渐暗效果&#xff0c;详细介绍了操作步骤以及完整的程序代码&#xff0c;动手就能制作的小实验。 2.操作步骤 2.1.硬件搭建 1.硬件准备 名称型号数量单片机STC12C2052AD1LED彩灯无2晶振1…

抖音预约服务小程序开发:前端与后端技术的完美融合

开发抖音预约服务小程序成为了一种有趣而又实用的尝试。本篇文章&#xff0c;小编会与大家共同探讨抖音预约服务小程序开发的前端与后端技术融合的关键要点。 一、前端技术选择与设计 1.小程序框架 开发抖音预约服务小程序的前端&#xff0c;首先需要选择一个适用的小程序框…

系统试运行方案

系统试运行的目的&#xff1a; 试运行目的通过既定时间段的试运行&#xff0c;全面考察项目建设成果。并通过试运行发现项目存在的问题&#xff0c;从而进一步完善项目建设内容&#xff0c;确保项目顺利通过竣工验收并平稳地移交给运行管理单位。通过实际运行中系统功能与性能的…

系列三、ThreadLocal vs synchronized

一、ThreadLocal vs synchronized 虽然ThreadLocal与synchronized关键字都能用于处理多线程并发访问变量的问题&#xff0c;但是两者处理问题的角度和思路是不一样的。区别如下&#xff1a; 小总结&#xff1a;虽然上一篇中的案例都实现了线程隔离&#xff0c;但是使用ThreadLo…

计算机网络之概述

一、概述 1.1因特网概述 定义 网络(Network)由若干结点(Node)和连接这些结点的链路(Link)组成。多个网络还可以通过路由器互连起来&#xff0c;这样就构成了一个覆盖范围更大的网络&#xff0c;即互联网&#xff08;或互连网&#xff09;因此&#xff0c;互联网是“网络的网络…