美文网首页
C语言基础(2)——三种排序方式和函数

C语言基础(2)——三种排序方式和函数

作者: 让时间走12138 | 来源:发表于2019-11-30 20:07 被阅读0次

    本节内容

    • 冒泡排序

    • 选择排序

    • 插入排序

    • 函数基本介绍

    (一)冒泡排序

    冒泡排序是从小到大排序,当前一个数比后一个数大的时候,它们就需要更换位置。每次循环都会有一个最大的数沉底。而从头开始的数都要经历一次这种循环。冒泡排序有两次循环,即一个循环里面又嵌套一个循环。
    • 接下来,我们用冒泡排序来完成从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函数中尽量不出现代码块,我们一般都会对函数进行声明,而且是采用第二种方式。
    以上就是我们今天的全部内容啦,祝大家学习愉快,好好生活,天天向上!

    相关文章

      网友评论

          本文标题:C语言基础(2)——三种排序方式和函数

          本文链接:https://www.haomeiwen.com/subject/uwwgwctx.html