• 《算法导论》(第二章)算法入门


      看到第二章的标题,有点激动,终于可以开始学习算法了,第一个算法,插入排序。

      输入要求:随机输入N个(a,b,c,d,e......)数。

      输出要求:输出这N个数的一个重新排序(要求:(a<=b<=c<=d<=e......)或(a>=b>=c>=d>=e......))

      算法代码如下(C语言版)

    #include<stdio.h>
    #define Max 100 //定义排序的数的个数.
    int n;
    int a[Max];//将要排序的数组,以及排序的个数定义为全局变量.
    int main()
    {
     int i;
     void InsertSort(int [],int n);//插入排序算法的声明.
     while(scanf("%d",&n)==1)
     {
      if(n>100)
      {
       printf("The N is too big !\n");
       continue;
      }//超过最大个数跳过,继续下一次进程.
      for(i=0;i<n;i++)
      {
       scanf("%d",&a[i]);
      }
      InsertSort(a,n);
      for(i=0;i<n;i++)
      {
       printf("%d ",a[i]);
      }
      printf("\n");
     }
     return 0;
    }
      /* 插入排序算法的核心 */
    void InsertSort(int b[],int n)
    {
     int i,j,key;
     for(i=1;i<n;i++)
     {
      key=b[i];//当前未插入进去的数.
      j=i-1;
      while(key<b[j]&&j>=0)
      {
       b[j+1]=b[j];
       j--;
      }
      b[j+1]=key;//将此数插入到相应的位置.
     }
    }

      这是《算法导论》中的第一个算法,应该好好注意,毕竟,只有把基础知识学好才会在以后的学习中更加得心应手!

                                                                                                                                                                                                        (坚持)

                                                                            Never Give Up !

     

    就算天再高,那又怎样,踮起脚尖,就可以更靠近阳光!
  • 相关阅读:
    【DDD】领域驱动设计实践 —— 架构风格及架构实例
    【DDD】领域驱动设计精要
    Zynq UltraScale+ cross compiler
    Platform device/driver注册过程 (转)
    static inline extern等概念
    (int argc, char *argv[]) 指针数组
    linux man 1,2,3 命令
    指针左值错误
    arm ds5 编译选项
    在JTAG菊花链拓扑对设备编程
  • 原文地址:https://www.cnblogs.com/dreamapple/p/3080383.html
Copyright © 2020-2023  润新知