C语言-选择排序和冒泡排序的C代码

《数据结构》这门课程不仅讲数据结构,更重要的是讲算法。数据的四种逻辑结构:线性结构、树形结构、图状结构、集合结构。

 学习数据结构时候两种排序方法的C代码:

#include <stdio.h>
/*选择排序*/ 
/*从第一个数开始和后面的每一个数两两比较,将最小值放最前面*/ 
void select_sort(int a[],int n){
	int temp,i,j,k; 
	for(i=0; i<n-1; ++i){		//n个数做从小到大排序 
		j=i;					//i是数组角标,从0开始,到n-1结束
		for(k=i+1; k<n; ++k){	//k代表a[i]后一个数组元素的角标
			if(a[k]<a[i]){		//如果后一个数比前一个数小 执行 把后面的角标k赋值给临时变量j
				j=k;			 
				if(j!=i){		//如果 j的值已经被另外赋值k了,那么说明上面的条件比较成功,将两个数位置调换,小的放前面
					temp = a[i];
					a[i] = a[j];
					a[j] = temp;//将两个数值进行交换位置 
				}
			}
		}
	}
}

/*冒泡排序*/
/*相邻的两个数依次进行比较,每一次比较后,最大的数会排最后*/
void bubble_sort(int a[],int n){
	int i,j,temp;
	_Bool change = 1;			//C语言后来才引入了布尔类型_Bool 其中1代表true,0代表flase 
	
	for(i = n-1,change=1; i>1 && change; --i){
		change = 0;
		for(j=0; j<i; ++j){
			if(a[j]>a[j+1]){
				temp = a[j];
				a[j] = a[j+1];
				a[j+1] = temp;
			
				change = 1;
			}
		}
	}
}

/*主函数*/ 
void main(){
	int a[8] = {9,3,6,4,5,1,4,4};
	int b[6] = {5,9,4,8,2,6,};
	select_sort(a,8);
	bubble_sort(b,6);
	
	int i;
	for(i=0;i<8;i++){
		printf("%d ",a[i]);
	}
	printf("\n");
	int j;
	for(j=0;j<6;j++){
		printf("%d ",b[j]);
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值