用户登录
用户注册

分享至

一文搞懂冒泡排序 C语言

  • 作者: 上官纟勺炮
  • 来源: 51数据库
  • 2021-09-28
#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);
	
}
软件
前端设计
程序设计
Java相关