交换类排序算法-冒泡排序和选择排序

冒泡排序
冒泡排序原理为:拿数组array[10]={4,5,3,6,7,2,1,8,9,0}来说,从第一个数开始两两比较:4和5比较,大数置后。然后5和3比较,大数置后。然后5和6比较.......依次比较。大数则置后。每一次都能把大的数放后面。这样就能排好序了。接下来看代码吧
#include<stdio.h>
void printArray(int array[],int length){
	for(int i=0;i<length;i++){
		printf("%d",array[i]);
	}
	printf("\n");
}
void bubbleSort(int array[],int length){
	for(int j=0;j<length-1;j++){  //外层循环表明排序次数:次数为数组长度-1
		for(int k=0;k<length-1-j;k++){ //内层循环表明 两两比较数据把最大数放置末尾
			if(array[k]>array[k+1]){
				int temp=array[k];
				array[k]=array[k+1];
				array[k+1]=temp;
			}
		}
	}
	
}
int main(){
	int array[10]={4,5,3,6,7,2,1,8,9,0};
	printArray(array,10);
	bubbleSort(array,10);
	printArray(array,10);
    return 0;
}
选择排序:
选择排序原理为:还拿数组array[10]={4,5,3,6,7,2,1,8,9,0}来说,也是两两比较。不过是从第一个数开始,第一个数都要与后面的数比较,把最小数置前。4与后面的9个数都比较。如果有比4小的数则交换位置,如果没有比较完,拿交换后的数和后面数比较,重复上述操作,最后则排好序了,下面看代码吧
#include<stdio.h>
void printArray(int array[],int length){
	for(int i=0;i<length;i++){
		printf("%d",array[i]);
	}
	printf("\n");
}
void selectSort(int array[],int length){
    for(int j=0;j<length-1;j++){ //外层循环控制次数
		for(int k=j+1;k<length;k++){ //内层循环表明  从第一个数开始都要与后面的数比较最后最小数置前
			if(array[j]>array[k]){
				int temp=array[j];
				array[j]=array[k];
				array[k]=temp;
			}
		}
   }

}
int main(){
   int array[10]={4,5,3,6,7,2,1,8,9,0};
	printArray(array,10);
	selectSort(array,10);
	printArray(array,10);
    return 0;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值