上一期讲解了C语言排序的一些知识点,这一期要介绍冒泡排序和选择排序两种排序方式,包括注意点和代码。
一、冒泡排序
冒泡排序:相邻的元素两两比较,大的放右边,小的放左边。
1.第一轮比较完毕后,max确定
2.如果数组中有n组数组,总共执行n-1轮代码
双循环本质:把内循环重复执行n次
内循环:找到本次循环的max,把max放最右边
外循环:把上面这个动作循环len-1
例题:把 3,5,2,1,4利用冒泡排序从小到大排序
#include<stdio.h>intmain(){intarr[]={3,5,2,1,4};intlen=sizeof(arr)/sizeof(int);for(inti=0;i<len-1;i++){for(intj=0;j<len-1-i;j++){if(arr[j]>arr[j+1]){inttemp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}for(inti=0;i<len;i++){printf("%d",arr[i]);}return0;}二、选择排序
1.从0索引开始,跟后面元素一一比较
2.小的放前面,大的放后面
3.第一轮循环结束后,min已经确定
4.第二轮从1索引开始依此类推
例题:把 3,5,2,1,4利用选择排序从小到大排序
#include<stdio.h>intmain(){intarr[]={3,5,2,1,4};intlen=sizeof(arr)/sizeof(int);for(inti=0;i<len-1;i++){for(intj=i+1;j<len;j++){if(arr[i]>arr[j]){inttemp=arr[i];arr[i]=arr[j];arr[j]=temp;}}}for(inti=0;i<len;i++){printf("%d",arr[i]);}return0;}下一期将讲解C语言指针部分的内容