欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

一文搞懂冒泡排序 C语言

程序员文章站 2022-05-13 09:32:57
#includeint *bubble(int a[],int len){//int len = sizeof(a)/sizeof(int); //这样写是错误的,因为a传进来的是个指针,sizeof(a)是8for(int i=0;ia[j+1]){int t = a[j];a[j] = a[j+1];a[j+1] =...
#include<stdio.h>

void bubble(int a[],int len){
//	int len = sizeof(a)/sizeof(int); //这样写是错误的,因为a传进来的是个指针,sizeof(a)是8
	for(int i=0;i<len-1;i++)
		for(int j=0;j<len-1;j++)
			if(a[j]>a[j+1]){
				int t = a[j];
				a[j] = a[j+1];
				a[j+1] = t;
			}
//优化写法
//	for(int i=0;i<len-1;i++){
//		int flag = 0;
//		for(int j=0;j<len-1-i;j++){//-i是因为后面已经排好了 
//			if(a[j]<a[j+1]){
//				flag = 1;
//				int t = a[j];
//				a[j] = a[j+1];
//				a[j+1] = t;
//			}
//		}
//			if(flag==0)
//				break;//一次下来数组没有变化,则已完成排序
//	}
}

void print (int a[],int len){
	for(int i=0;i<len;i++)
		printf("%d ",a[i]);
	putchar('\n');
}
main(){
	
	int a[]={1,3,5,9,2,4,10,8,7};
	int len = sizeof(a)/sizeof(int);
	bubble(a,len);
	print(a,len);
	
}

本文地址:https://blog.csdn.net/m0_45311187/article/details/109000168