本节内容
(一)冒泡排序
冒泡排序是从小到大排序,当前一个数比后一个数大的时候,它们就需要更换位置。每次循环都会有一个最大的数沉底。而从头开始的数都要经历一次这种循环。冒泡排序有两次循环,即一个循环里面又嵌套一个循环。
- 接下来,我们用冒泡排序来完成从0-9这十个数字的排序
#include<stdlib.h>
int main(){
int num[10]={3,0,1,8,7,2,5,4,9,6};
for(int i=1;i<10;i++){
for(int j=0;j<10-i;j++){
if(num[j]>num[j+1]){
int temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;}
}
}
return 0;}
因为沉底后最大的数已经排好了序,所以j<10-i,确保不会多做无用的步骤。
(二)选择排序
与冒泡排序相反,选择排序在每次循环后会选出最小的一个数放在前面。具体过程为:首先固定一个变量(例如temp)来存放最小值,然后这个数与后面的每一个数进行比较,如果有遇到比它还小的数,那么就让变量的值和这个数的值交换一下。最后把temp的值赋给最前面的那个数。
- 接下来,我们用选择排序来完成从0-9这十个数字的排序
#include<stdlib.h>
int main(){
int num[10]={3,0,1,8,7,2,5,4,9,6};
for(int i=0;i<10-1;i++){
int temp=num[i];
for(int j=i+1;j<10;j++){
if(temp>num[j]){
int n=temp;
temp=num[j];
num[j]=n;}
}
num[i]=temp;
}
return 0;}
最后的num[i]=temp;意思是把最小值固定在当前循环的i的位置。因为每次循环时前面的数已经 排好序了,所以j=i+1,一直要比到最后,所以j<10;
(三)插入排序
插入排序就是,如果是第一个数,就和它后面的数进行比较,如果比它大,那么它们就互换位置。从第二个数开始,和后面的数比较后还要和还需要和前面一个数进行比较,如果小于前面的数就需要互换位置。如果大于,则固定位置不变。
- 接下来,我们用插入排序来完成从0-9这十个数字的排序
#include<stdlib.h>
int main(){
int num[10]={3,0,1,8,7,2,5,4,9,6};
for(int i=0;i<10-1;i++){
if(num[i]>num[i+1]){
int temp=num[i];
num[i]=num[i+1];
num[i+1]=temp;
for(int j=i;j>0;j--){
if(num[j]>num[j-1]){
break;}else{
int temp=num[j];
num[j=num[j-1];
num[j-1]=temp;}
}
}
return 0;}
第二个循环就是让j对应的值和前面的所有数进行比较,直到遇见比它小的数,然后固定位置不变。如果前面的数一直比它大的话,就要一直进行比较,然后交换位置。
(四)函数基本介绍
函数就是代码块,相当于一个独立的空间。一个功能对应一个函数。函数的好处就是它一旦被定义了以后,就可以被多次调用。
定义一个函数的一般格式为:返回类型+函数名(形参)+函数主体
形式参数:函数体内的局部变量
定义函数的两种方式:(1)声明和实现在一起。这样做的缺点就是不易阅读,很繁冗。(2)先声明后实现。一般是先在main函数前声明,然后再main函数结束后再写函数主体。为了使main函数中尽量不出现代码块,我们一般都会对函数进行声明,而且是采用第二种方式。
以上就是我们今天的全部内容啦,祝大家学习愉快,好好生活,天天向上!
网友评论