审判程序的灵魂

1.

#include <stdio.h>
/*
    问题:
    在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能出现零次或者多次。
    设计一个算法,找出出现次数最多的数字。
*/

void search(int a[], int len)
{
    int sp[1000] = {0};
    int i = 0;
    int max = 0;
    
    for(i=0; i<len; i++)
    {
        int index = a[i] - 1;
        
        sp[index]++;
    }
    
    for(i=0; i<1000; i++)
    {
        if( max < sp[i] )
        {
            max = sp[i];
        }
    }
    
    for(i=0; i<1000; i++)
    {
        if( max == sp[i] )
        {
            printf("%d\n", i+1);
        }
    }
}

int main()
{
    int array[] = {1, 1, 3, 4, 5, 6, 6, 6, 2, 3};
    
    search(array, sizeof(array)/sizeof(*array));
    
    return 0;
}

2.

#include <stdio.h>

int func(int a[], int len)
{
    int i = 0;
    int j = 0;
    int s = 0;
    
    for(i=0; i<len; i++)
    {
        for(j=0; j<len; j++)
        {
            s += i*j;
        }
    }
    
    return s;
}

int main()
{
    int array[] = {1, 2, 3, 4, 5};
    
    printf("%d\n", func(array, 5));
    
    return 0;
}

3.

#include <stdio.h>

int search(int array[], int length, int n)
{
    int ret = -1;
    int i = 0;
    
    for(i=0; i<length; i++)
    {
        if( array[i] == n )
        {
            ret = i;
            break;
        }
    }
    
    return ret;
}

int main()
{
    int array[5] = {1, 2, 3, 4, 5};
    
    printf("%d\n", search(array, 5, 1));
    printf("%d\n", search(array, 5, 5));
    
    return 0;
}

时间: 2024-10-11 06:21:55

审判程序的灵魂的相关文章

第三课、初识程序的灵魂------------------------狄泰软件学院

一.初识程序的灵魂 1.数据结构静态描述了数据元素之间的关系 2.高效的程序需要在数据结构的基础上设计和选择算法 高效的程序需要: (1).恰当的数据结构 (2).合适的算法 3.算法是特定问题求解步骤的描述,在计算机中表现为指令的有限序列 (1).算法是独立存在的一种解决问题的方法和思想 (2).对于算法而言:语言不重要,重要的是思想 4.算法的特性 (1).输入:算法具有0个或者多个输入 (2).输出:算法至少有一个或者多个输出 (3).有穷性:算法在有限的步骤之后会自动结束而不会自动循环

数据-第3课-程序的灵魂-算法

第3课-程序的灵魂-算法 数据结构与算法 (1) 数据结构只是静态的描述了数据元素之间的关系. (2) 高效的程序需要在数据结构的基础上设计和选择算法. 高效的程序:恰当的数据结构 + 合适的算法. 算法的定义 (1) 算法是特定问题求解步骤的描述. (2) 在计算机中表现为指令的有限序列. 算法是独立存在的一种解决问题的方法和思想. 对于算法而言,语言并不重要,重要的是思想. 算法的特性 (1)输入 算法具有0个或多个. (2)输出 算法至少有1个或多个输出. (3)有穷性 算法在有限的步骤之

C语言程序设计-第2章 算法-程序的灵魂

一个程序主要包括以下两个方面的信息: 1)对数据的描述.在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式,这就是数据结构(data structure). 2)对操作的描述.即要求计算机进行操作的步骤,也就是算法(algorithm). 算法+数据结构=程序 算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法. 为解决一个问题而采取的方法和步骤,就称为"算法". 例题1.判定2000-2500年中每一年是否为闰年,并将结果输出. 设year为被检测的年份.算

第三课:程序的灵魂-算法

程序效率越高越好,并不是越短越好.在某些场合下,我们需要写出别人看不懂的算法最好,但是在一个团队开发中,算法可读性应该尽可能高. 算法的定义 算法是特定问题求解步骤的描述 在计算机中表现为指令的有限序列算法是独立存在的一种解决问题的方法和思想.对于算法而言,语言并不重要,重要的是思想 算法的特性 输入 算法具有0个或多个输入 输出 算法至少有1个或多个输出 有穷性 算法在有限的步骤之后会自动结束而不会无限循环 确定性 算法中的每一步都有确定的含义,不会出现二义性 可行性 算法的每一步都是可行的

【程序设计基础】第四章 程序的灵魂------算法

对数据的描述 在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure) 对操作的描述(算法Algorithm) 程序=算法+数据结构 程序=算法+数据结构+程序设计方法+语言工具和环境 一.算法的概念 1.数值运算算法 2.非数值运算算法 二.算法的特性 1.有穷性 2.确定性 3.有零个或多个输入 4.有一个或多个输出(非必要,非数值运算的程序,只是完成一个处理,不必要将结果展示) 5.有效性 三.表示算法 自然语言 流程图(传统流程图.结构化流程图) 顺序结构.选

第2章 算法----程序的灵魂

2.0 程序设计的四个方面 1.数据结构(对数据的描述,主要,加工对象)2.算法(对操作的描述,主要,灵魂)3.程序设计方法(编程需要采用合适的方法) 4.语言工具(工具) 2.1什么是算法 1.算法:为解决一个问题而采取的方法和步骤(广义) 2.计算机算法:1.数值运算算法(1.目的:求数值解:2.对该算法研究比较深入,往往有现成的模型,可以运用数值分析的方法) 2.非数值运算算法(只有一些典型的非数值运算算法,如排序算法,查找搜索算法等,有现成,成熟的算法可以提供) 3.

程序的灵魂-算法

Nikilaus Wirth提出的公式:程序=算法+数据结构 教材认为:程序=算法+数据结构+程序设计方法+语言工具和环境. 算法的概念 算法指计算机解决问题的方法. 算法分为数值算法和非数值算法. 算法的特性 有穷性 有效性 确定性 零个或多个输入 一个或多个输出 使用流程图表示算法 传统流程图 N-S流程图 三种基本结构 顺序结构 选择结构 循环结构 结构程序设计的方法 自顶向下,逐步细化,模块化设计,机构化编程 自底向上,逐步增加,模块化设计,结构化编程

03初识程序的灵魂

原文:https://www.cnblogs.com/wanmeishenghuo/p/9484777.html 内容参考: 狄泰软件学院相关教程 程序并不是越短越好. 数据结构静态的描述了数据元素之间的关系. 高效的程序需要在数据结构的基础上设计和选择算法 高效的程序包括:恰当的数据结构和合适的算法 算法是特定问题的求解步骤,在计算机中表现为指令的有限序列 算法是独立存在的一种解决问题的方法和思想 对于算法而言,语言并不重要,重要的是思想 算法的特性: 1.输入:算法具有0个或者多个输入 2.

数据结构笔记(一)

程序的本质 1.程序是为了实际问题而存在,从本质上而言,程序是解决问题的步骤描述 2.程序鉴评: (1).用尽量少的内存空间解决问题 (2).用尽量少的步骤去解决问题 数据的艺术 1.数据结构的起源:数据结构主要研究非数值计算程序问题中的操作对象以及它们之间的关系 2.数据:程序的操作对象,用于客观描述事物 数据元素:组成数据的基本单位 数据对象:性质相同的数据元素的集合 数据项:一个数据元素由若干个数据项组成 用此图更直观其之间的关系: 3.数据元素之间不是独立的,存在特点的关系,这些关系即结