c语言冒泡排序法

本文介绍了如何使用冒泡排序算法对乱序数组进行从小到大的排序,通过嵌套的for循环实现元素之间的比较和交换,提供了C语言的代码示例。

1.概念

当创建一个数组,想要将数组里的元素按从小到大进行排序,我们可以先取出数组的第一位元素,是这第一位从第一位到最后一位进行比较,如果比到比这位元素大的元素那么就取这位大的元素继续进行比较,被取的元素称作“冒泡”,通过这样的方法每次比较虽然不能保证每个数都按从小到大排序好,但能使数组中最大的数排在最后,再缩短数组进行这样排序能使数组每个数都能按从小到大进行排序

2.用图表理解

比如像最简单的一个这样的数列我们可以先将第一个元素取出一个一个地进行比较:

换位代码实现大家应该都知道是:

        for (int j = 0;j < c;j++)
        {
            if (crr[j + 1] < crr[j])
            {
                int temp = crr[j];
                crr[j] = crr[j + 1];
                crr[j + 1] = temp;
            }
        }

其中crr是我创建的数组temp是我创建的元素换位的媒介

要想实现所有元素就需要再套一个for循环可以让数组里每一位都能冒泡以实现数组的排序:

    for (int i = 0; i < a+b-1; i++)
    {
        for (int j = 0; j <a+b - i-1; j++)
        {
            if (c[j] > c[j + 1])
            {
                temp = c[j];
                c[j] = c[j + 1];
                c[j + 1] = temp;
            }
        }
    }

其中a+b=c

通过每次比较缩短数组可以让数组从小到大排序。

3.题目

创建一个乱序数组将此数组进行排序

4.答案&&数组排序模板

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    int a, b, temp;
    int c[10] = {0};
    for (int i = 0;i < 10;i++) {
        scanf("%d", &c[i]);
    }
    for (int i = 0; i < 9; i++)
    {
        for (int j = 0; j < 9 - i; j++)
        {
            if (c[j] > c[j + 1])
            {
                temp = c[j];
                c[j] = c[j + 1];
                c[j + 1] = temp;
            }
        }
    }
    for (int i = 0;i < 10;i++) {
        printf("%d ", c[i]);
    }
    return 0;
}

【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方,重点提出了一种基于耦合DC-DC变换器状态空间平均模型的建模策略。该方通过对系统中多个相互耦合的DC-DC变换器进行统一建模,构建出整个微电网的集中状态空间模型,在此基础上实施线性化处理,便于后续的小信号分析与稳定性研究。文中详细阐述了建模过程中的关键步骤,包括电路拓扑分析、状态变量选取、平均化处理以及雅可比矩阵的推导,最终通过Matlab代码实现模型仿真验证,展示了该方在动态响应分析和控制器设计中的有效性。; 适合人群:具备电力电子、自动控制理论基础,熟悉Matlab/Simulink仿真工具,从事微电网、新能源系统建模与控制研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网中多变换器系统的统一建模方;②理解状态空间平均在非线性电力电子系统中的应用;③实现系统线性化用于稳定性分析与控制器设计;④通过Matlab代码复现和扩展模型,服务于科研仿真与教学实践。; 阅读建议:建议读者结合Matlab代码逐步理解建模流程,重点关注状态变量的选择与平均化处理的数学推导,同时可尝试修改系统参数或拓扑结构以加深对模型通用性和适应性的理解。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值