zoukankan      html  css  js  c++  java
  • 《算法导论》(第二章)算法入门

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

      输入要求:随机输入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 !

     

    就算天再高,那又怎样,踮起脚尖,就可以更靠近阳光!
  • 相关阅读:
    导航栏下拉至一定高度后固定在顶部的特效
    laravel表单中文错误提示本地化
    laravel模板使用
    网站测试用例
    sublime安装ctags用于追踪函数
    ecshop头部添加所在城市
    php 常用的redis操作语法
    mysql where与 having的区别
    mysql 列类型以及属性特点
    不错的博客链接
  • 原文地址:https://www.cnblogs.com/dreamapple/p/3080383.html
Copyright © 2011-2022 走看看