欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于程序设计的一些基本原则

程序员文章站 2024-03-14 18:14:22
...
关于程序设计的基本原则
  程序设计往往和算法的时间复杂度和空间复杂度紧密相连,优化算法的时间复杂度和空间复杂度使程序设计的根本目的之一。

  算法的时间复杂度是指执行程序所需要的时间,算法的空间复杂度是指执行程序所需要的存储空间。一般来说,在任何程序设计竞赛中,时间复杂度往往比空间复杂度容易出问题,所以我们在设计程序时,时间复杂度是我们首要考虑的问题。

  我们学习程序设计主要是为了计算机的高效率,如果一个算法因为执行次数太多而导致其运行时间远高于其它的算法,那么这样的算法就是失败的算法。同理,我们在一定的内存空间里面,要想执行更多的程序,就必须得压缩每一个算法执行程序时所需要的存储空间。

  一般来说,在任何程序设计竞赛中,时间复杂度往往比空间复杂度容易出问题,所以我们在设计程序时,时间复杂度是我们首要考虑的问题。在执行次数较少时,因为计算机系统处理的迅速,可能看不出什么差别,但是当执行次数上升到10510610710^5、10^6、10^7次时,我们就可能会遇到执行超时的问题。

  在执行算法的过程中,我们可以认定每执行一步所需要的时间都是1,那么,由于循环体的存在,循环n次的程序就执行了nmn*m次,此处m为每个循环体里面的操作次数。在设计程序的过程中,为了避免超时问题,我们一般都要尽量减少双重及以上的循环,这放在程序设计竞赛里面基本上是一定会超时的。而优化算法的时间复杂度,就是我们运用所学知识的时候了。

  除了时间复杂度和空间复杂度之外,还需要考虑的就是算法的简洁性和易读性。C++和C语言都是以一个英文分号作为一句代码的结束,或者是花括号作为代码块的结束。因此,在编写程序时极大地增加了程序员的*性。也正是因此,发展出了许多不同风格的编写代码方式,但是也就造成了A编写的代码来给B修改就造成了巨大的困难,不利于代码的推广利用。

  在此推荐我的写代码的方式。

  • 紧凑性,空格是为了分开不同的数据类型,除非必要,尽量少写空格。
  • 一行只写一句,以分号结尾,在定义变量时,有初值的尽量写在后面。
  • 函数定义:头写在前,函数定义写在主函数下方。
  • 有循环输入,定义solve函数,使主函数简洁明了,避免写循环体导致累赘。
  • 只有一句执行体的if语句,else语句,for语句,while语句,省略花括号。

例子如下:

#include<iostream>
using namespace std;
void solve();
int main()
{
    int a,b,c=1;
    cin>>a>>b;
    for(int i=0;i<10;i++)a++;
    while(a--)
    {
        if(a==b) cout<<"it is right!"<<endl;
        else{
            b++;
            c*=b;
        }
    }
    while(10)
        solve();
    return 0;
}
void solve()
{
    cout<<"YES"<<endl;
}

  让写出来的代码显得干净,整洁也是优秀的程序员所需要做的事情,在网上看见的部分程序员写的代码,重复累赘部分很多,同时代码逻辑也有需要提高的地方,如果写代码的思路清晰,那么写出来的代码给别人读也会是十分清晰的,同时也便于他人维护,当然,在写代码的时候加上自己的注释也不失为一种好办法。

  另外,部分人在写代码的时候,不管需不需要,每次都先包含很多常用的头文件,于是乎就出现了程序一大块,代码开头十几行都是#include<>,个人推荐还是按需选择头文件,这样可以让自己的代码显得整洁,而且可以加深对使用的函数的理解,免得到时候需要找一个头文件函数的时候都不知道它在哪个头文件里面。