C语言实现冒泡排序

算法思想:从第一个开始,相邻两个数进行比较,如果前1个数大于后一个数,则进行调换,这样换到最后,最大的那个就会在最后面,重复这个过程,较大的就会逐个累积在后面,本质思想就是大的在一轮中会逐渐冒泡到后排。

//冒泡排序

#include<stdio.h>

#include<stdlib.h>

int main()

{

int a[10]={2,1,3,5,4,6,7,9,8};

int i,j,t,k;

for (i=0;i<9;i++)//比较n-1趟

{

for(j=0;j<9-i;j++)//每趟比较【n-趟数】次

{

if(a[j]<a[j+1])

{

t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

for(k=0;k<9;k++)

{

printf("%d\n",a[k]);

}

}

算法时间复杂度:O(n²)
算法空间复杂度:O(1)
算法稳定性:稳定
算法稳定性概念:假设在数列中存在a[i]=a[j],若在排序之前,a[i]在a[j]前面;并且排序之后,a[i]仍然在a[j]前面。则这个排序算法是稳定的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值