冒泡排序的原理和python代码/C++代码

目录

什么是冒泡排序?

冒泡排序的原理:

注意点:

原理图如下:

python冒泡排序代码:

C++冒泡排序代码:

什么是冒泡排序?

冒泡排序(Bubble Sort)是一种最基础的交换排序。之所以叫做冒泡排序,是因为每一个元素都可以像小气泡一样,根据自身数值大小,一点点向数组的一侧移动。

冒泡排序的原理:

想象有一个指针指向第一个数,每一趟排序都需要从第一位开始进行相邻的两个数的比较将较大的数放后面。然后指针向后挪一位,继续比较两个相邻的两个数的大小关系。重复此步骤,直到所有的数归位。

注意点:

每一趟排序只能确定一个数的归位,第一趟只能确定末位上的数归位,第二趟只能确定倒数第二位上的数归位。如果有n个数进行排序,只需将n-1个数归位,也就是要进行n-1趟操作。

原理图如下:

python实现冒泡排序:

def bubble_sort(nums):
    # 设置一个flag,用来判断某次循环是否发生了变换
    flag = True
    for i in range(len(nums)-1):   # 这个i就相当于指针,用来决定遍历几趟
        for j in range(len(nums)-1-i):  # j指向具体的数值,用来进行一趟遍历
            if nums[j] > nums[j+1]:
                nums[j],nums[j+1] = nums[j+1],nums[j]
                flag = False      #一趟可以遍历所有未曾排序的数
        #如果没有发生交换,说明已经排序好了,无需继续排序
        if flag:
            break
    return nums


array = [8,5,0,4,-4]
print(f'冒泡排序之前的列表:{array}')
print(f'排序之后:{bubble_sort(array)}')

C++实现冒泡排序:

#include<stdio.h>
int main(void)
{
    int a[10]={6,4,3,2,7,8,9,10,1,5};
    int i,k,w;
    for(i=0;i<9;i++)
    {
        for(k=0;k<9-i;k++)
        {
            if(a[k]>a[k+1])
            {
                w=a[k];
                a[k]=a[k+1];
                a[k+1]=w;
            }
        }
    }
    for(i=0;i<10;i++)
    {
        printf("%d ",a[i]);
    }
 } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值