C语言实现冒泡排序

#include<stdio.h>
void print_array(int a[], int n) {   //遍历数组 
	for (int i = 1;i <= n;i++) {
		printf("%d ", a[i - 1]);
	}
	printf("\n");
}

void swap(int *a,int *b) {           //交换数组中的值 
	int temp = *a;
	*a = *b;
	*b = temp;
}

void Bebble_sort(int a[],int n){
	for(int i = 1;i<n;i++){          //只需要判断n-1次 
		int swapped = 0;             //优化,当判断剩下的元素发现没有需要交换的即数组有序
		for(int j=0;j<n-i;j++){      //只需要检查n-i次,因为每次都会把后面的一项排好序 
			if(a[j]>a[j+1]){
				swap(&a[j],&a[j+1]);
				swapped = 1;
			}
		}	
		print_array(a,n);
		if(swapped==0)break;         //优化内容
	}
	
}
int main(void){
	int a[]={3,5,2,8,1,4,5,4,3,7,5,4,8,2,3,9,6,10};
	Bebble_sort(a,18);
} 

冒泡排序也挺简单的。
复杂度O(n²)。
上条博客回复我那个大哥,我真是新手,等我学了树一定去试试你的方法(流泪)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值