【冒泡排序】冒泡算法-----数字排序

简介: 【冒泡排序】冒泡算法-----数字排序

C语言冒泡算法排序

1.1简介

冒泡算法作为一个最基本的排序方法,对数组前后元素进行比较然后今天位置排列。本文讲用最朴素的语言介绍并教会你使用他。本文我将会先分析他的格式然后用一个实例去做演示。

2.1算法结构原理

1.使用一个for循环用来用来保证数组中每一个数据都被比较到

2.再次使用一个for循环,并在其中使用if语句比较前后元素大小

3.满足if语句则使用变量num取出第i个数字(i为大数)

4.然后num[i]赋值num[i+1](此时较大数和较小数的位置都是较大数)

5.再把较大数放到之前较小数位置实现后移

2.2代码分析

在该片段中我们将排列数组cunt[ ]中的三个数字

/*这里为了方便理解我对数组进行赋值9,8,7*/ 
for ( int j = 0; j < 4; j++)//循环数组
    {
        for ( int i = 0; i < 4-j; i++)/*小循环,遍历每次更改后数组的值(4-j因为每次循环后最后的元素已经是最大的无需再次被排序这里有个优化)*/
        {
            if(cunt[i]>cunt[i+1])/*比较数组前后两个元素的大小*/
            {
                num = cunt[i];//前一个元素9大于后一个元素,取出赋值给num
                cunt[i] = cunt[i+1];//9换成8,目前数组为8,8,7
                cunt[i+1]=num;//8换成9,目前数组8,9,7
            }

由此代码可以看出,两个for循环分别控制数组的大循环和内部元素的排序

3.1实例:

从键盘获取用户输入的是个数字,对其进行大小排列并纵向输出

/*
    1.创建一个数组储存数字
    2.采用for循环输入数字
    3.for遍历数组,使用if如果满足就进行赋值
    4.小循环结束把他派到最后一个,并且不需要去管它
*/
#include <stdio.h>
int main(int argc, char const *argv[])
{
    int cunt[10];
    int num;
    for ( int i = 0; i < 10; i++)
    {
        scanf("%d",&cunt[i]);
    }
    for ( int j = 0; j < 9; j++)//循环数组
    {
        for ( int i = 0; i < 9; i++)
        {
            if(cunt[i]>cunt[i+1])//9,8,7,6
            {
                num = cunt[i];//num=9取出
                cunt[i] = cunt[i+1];//9换成8
                cunt[i+1]=num;//8换成9
            }
        }
        for (int i = 0; i < 10; i++)
        {
            printf("%d\n",cunt[i]);
        }
    }
    return 0;
}
目录
相关文章
|
25天前
|
搜索推荐 Python
利用Python内置函数实现的冒泡排序算法
在上述代码中,`bubble_sort` 函数接受一个列表 `arr` 作为输入。通过两层循环,外层循环控制排序的轮数,内层循环用于比较相邻的元素并进行交换。如果前一个元素大于后一个元素,就将它们交换位置。
125 67
|
1月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(上)(c语言实现)(附源码)
本文介绍了四种常见的排序算法:冒泡排序、选择排序、插入排序和希尔排序。通过具体的代码实现和测试数据,详细解释了每种算法的工作原理和性能特点。冒泡排序通过不断交换相邻元素来排序,选择排序通过选择最小元素进行交换,插入排序通过逐步插入元素到已排序部分,而希尔排序则是插入排序的改进版,通过预排序使数据更接近有序,从而提高效率。文章最后总结了这四种算法的空间和时间复杂度,以及它们的稳定性。
103 8
|
1月前
|
搜索推荐 算法 C语言
【排序算法】八大排序(下)(c语言实现)(附源码)
本文继续学习并实现了八大排序算法中的后四种:堆排序、快速排序、归并排序和计数排序。详细介绍了每种排序算法的原理、步骤和代码实现,并通过测试数据展示了它们的性能表现。堆排序利用堆的特性进行排序,快速排序通过递归和多种划分方法实现高效排序,归并排序通过分治法将问题分解后再合并,计数排序则通过统计每个元素的出现次数实现非比较排序。最后,文章还对比了这些排序算法在处理一百万个整形数据时的运行时间,帮助读者了解不同算法的优劣。
115 7
|
2月前
|
搜索推荐
冒泡排序算法
【10月更文挑战第19天】冒泡排序是一种基础的排序算法,虽然在实际应用中可能不是最优的选择,但对于理解排序算法的基本原理和过程具有重要意义。
|
2月前
|
算法 搜索推荐 Java
数据结构与算法学习十三:基数排序,以空间换时间的稳定式排序,速度很快。
基数排序是一种稳定的排序算法,通过将数字按位数切割并分配到不同的桶中,以空间换时间的方式实现快速排序,但占用内存较大,不适合含有负数的数组。
41 0
数据结构与算法学习十三:基数排序,以空间换时间的稳定式排序,速度很快。
|
2月前
|
算法 搜索推荐
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
本文介绍了冒泡排序、选择排序和插入排序三种基础排序算法的原理、实现代码和测试结果。
24 0
数据结构与算法学习十一:冒泡排序、选择排序、插入排序
|
2月前
|
数据可视化 搜索推荐 Python
Leecode 刷题笔记之可视化六大排序算法:冒泡、快速、归并、插入、选择、桶排序
这篇文章是关于LeetCode刷题笔记,主要介绍了六大排序算法(冒泡、快速、归并、插入、选择、桶排序)的Python实现及其可视化过程。
22 0
|
2月前
|
搜索推荐 C语言
排序算法--冒泡排序
排序算法--冒泡排序
22 0
|
2月前
|
算法
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
❤️算法笔记❤️-(每日一刷-83、删除排序链表中的重复项)
34 0
|
2月前
|
存储 搜索推荐 算法
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析
【排序算法(二)】——冒泡排序、快速排序和归并排序—>深层解析