数据结构与算法

数据结构与算法-算法

2021-04-24  本文已影响0人  HughJin

Java工程师知识树


算法

算法是用于解决特定问题的明确定义的步骤的过程。

算法是有限的逻辑或指令集,它是为了完成某个预定义的任务而编写的。 它不是完整的程序或代码,它只是问题的解决方案(逻辑),可以使用流程图或伪代码表示为非正式描述。

主要的算法类别

算法的性能是基于以下属性来衡量的:

每个算法必须具有

示例:设计一个算法,将两个数字x和y相乘,并赋值到z中,最后显示结果。

第1步,开始
第2步,声明三个整数x,y和z
第3步,定义x和y的值
第4步,乘以x和y的值
第5步,将第4步的输出存储在z中
第6步,打印z
第7步,停止完成
或者,算法可以写成 -
第1步,开始相乘
第2步,获取x和y的值
第3步, z ← x * y
第4步,显示z
第5步,停止

算法的特征

算法必须遵循以下提到的特征:


指针

指针用于指向存储在计算机内存中任何位置的值的地址

获取存储在该位置的值称为解除引用指针。

指针提高了重复过程的性能

例如:
遍历字符串
查找表
控制表
树结构

指针详细信息:

指针示例程序

#include <stdio.h>  
int main()
{
    int a = 5;
    int *b;
    b = &a;
    printf("value of a = %d\n", a);
    printf("value of a = %d\n", *(&a));
    printf("value of a = %d\n", *b);
    printf("address of a = %u\n", &a);
    printf("address of a = %d\n", b);
    printf("address of b = %u\n", &b);
    printf("value of b = address of a = %u", b);
    system("pause");
    return 0;
}
//执行上面示例代码,得到以下结果 -
value of a = 5
value of a = 5
value of a = 5
address of a = 13630708
address of a = 13630708
address of b = 13630696
value of b = address of a = 13630708

//指针的指针示例程序
#include <stdio.h>  

int main()
{
    int a = 5;
    int *b;
    int **c;
    b = &a;
    c = &b;
    printf("value of a = %d\n", a);
    printf("value of a = %d\n", *(&a));
    printf("value of a = %d\n", *b);
    printf("value of a = %d\n", **c);
    printf("value of b = address of a = %u\n", b);
    printf("value of c = address of b = %u\n", c);
    printf("address of a = %u\n", &a);
    printf("address of a = %u\n", b);
    printf("address of a = %u\n", *c);
    printf("address of b = %u\n", &b);
    printf("address of b = %u\n", c);
    printf("address of c = %u\n", &c);
    system("pause");
    return 0;
}

//执行上面示例代码,得到以下结果 -
value of a = 5
value of a = 5
value of a = 5
value of a = 5
value of b = address of a = 16252636
value of c = address of b = 16252624
address of a = 16252636
address of a = 16252636
address of a = 16252636
address of b = 16252624
address of b = 16252624
address of c = 16252612

结构体

结构是一种复合数据类型,它定义了一组变量列表,这些变量将放在一个内存块中的一个名称下。

它允许通过使用指向结构的一个指针来访问不同的变量。

struct structure_name   
{  
    data_type member1;  
    data_type member2;  
    ...  
    ...
    data_type memeber;  
};

结构体优点

示例程序
#include<stdio.h>  
#include<conio.h>  
void main( )  
{  
    struct employee  
    {  
        int id ;  
        float salary ;  
        int mobile ;  
    };
    // 定义结构体变量
    struct employee e1,e2,e3 ;  
    clrscr();  
    printf ("\nEnter ids, salary & mobile no. of 3 employee\n"  
    scanf ("%d %f %d", &e1.id, &e1.salary, &e1.mobile);  
    scanf ("%d%f %d", &e2.id, &e2.salary, &e2.mobile);  
    scanf ("%d %f %d", &e3.id, &e3.salary, &e3.mobile);  
    printf ("\n Entered Result ");  
    printf ("\n%d %f %d", e1.id, e1.salary, e1.mobile);  
    printf ("\n%d%f %d", e2.id, e2.salary, e2.mobile);  
    printf ("\n%d %f %d", e3.id, e3.salary, e3.mobile);  
    getch();  
}
上一篇 下一篇

猜你喜欢

热点阅读