C语言版冒泡排序法

2015-4-27 海滨 程序就是一个世界

#include<stdio.h>

void bubbleSort(int a[]);

void main(){
	int a[]={5,46,10,56,48,17,48,75,41,82},i,cnt;
	cnt=sizeof(a)/sizeof(int);
	bubbleSort(a);
	for(i=0;i<cnt-1;i++){
		printf("%d\n",a[i]);
	}
}

void bubbleSort(int a[]){
	int i,j,temp,cnt;
	cnt=sizeof(a)/sizeof(int);
	for(i=0;i<cnt-1;i++){
		//循环比较
		for(j=i+1;j<cnt;j++){
			//执行交换
			if(a[j]<a[i]){
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
		}
	}

}

1.定义一个数组{5,46,10,56,48,17,48,75,41,82} 2.取出数组长度赋值给cnt 3.执行bubbleSort函数对a进行排序 4.冒泡排序法 定义一个数组{1,5,4},对其遍历操作 假如前面的数大于后面的数就交换位置 以{1,5,4}为例 第一次外循环: 判断一二位置之后,看是否交换位置,然后判断二三位置,看是否交换位置,很显然5不小于1,所以一二位置不交换,这时候进行二三位置判定,由于5>4,因此就会5与4交换位置。这时候数组就是是{1,4,5},这时候虽然数组已经排序好了,但是还要执行第一个数与第三个数的比较,这时候很显然5不小于1,因此也就不做交换。然后执行后两次循环,由此可见这个算法效率上是比较低的 请自己分析:{0,5,3,-1,1}

1.定义一个数组{5,46,10,56,48,17,48,75,41,82}

2.取出数组长度赋值给cnt

3.执行bubbleSort函数对a进行排序

4.冒泡排序法

定义一个数组{1,5,4},对其遍历操作

假如前面的数大于后面的数就交换位置

{1,5,4}为例

第一次外循环:

判断一二位置之后,看是否交换位置,然后判断二三位置,看是否交换位置,很显然5不小于1,所以一二位置不交换,这时候进行二三位置判定,由于5>4,因此就会54交换位置。这时候数组就是是{1,4,5},这时候虽然数组已经排序好了,但是还要执行第一个数与第三个数的比较,这时候很显然5不小于1,因此也就不做交换。然后执行后两次循环,由此可见这个算法效率上是比较低的

 

请自己分析:{0,5,3,-1,1}

 

标签: 冒泡排序 C语言版冒泡排序法

评论:

夜之明
2015-06-23 14:09
这个我们上C语言课的时候老师讲过,但是我们怎么认真听,今天转走啦,嘻嘻!

发表评论:


Powered by 海滨Blog
sitemap