周记-数据结构篇

算法的时间复杂度的计算

1,找出语句频度最大的那条语句
2,计算基本语句的频度
3,直接写出时间复杂度

推导大O阶方法

1,用常数1取代运行时间中的所有加法常量
2 ,在修改后的运行次数函数中,只保留最高阶项
3,如果最高阶项存在且不为1,则去除与这个项相乘的常数。

例如:for(i = 1;i <= n;i ++) { for(j = 1;j <= n;j ++) { c[i][j] = 0; for(k = 1;k <= n;k ++) { c[i][j] = c[i][j] + a[i][j] * b[k][j]; } } }
T(n) = o(n^3)
最坏时间复杂度 = 算法时间复杂度

数据结构研究

逻辑结构唯一 ----> 存储结构不唯一 ---->云撒UN的实现依赖于存储结构

线性表

定义学生顺序表并实现相应的常用操作
(1)初始化顺序表
(2)在顺序表的第i位置插入一个元素
(3)删除顺序表中第i个元素
(4)读取顺序表中第i个元素
(5)编写主函数,调用所编写的相应操作。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define USER "程浩然"
#define PASS "12345"
int ID(char User[],char Pass[])
{
	int count = 0;
	if(strcmp(USER,User) == 0 && strcmp(PASS,Pass) == 0)
	{
	 	count = 1;
	}
	return count;
}
typedef struct classa{
	char name[10];
	char sex[3];
	int grade;
}classa;
typedef classa ElemType;
typedef struct Student{
	ElemType *elem;
	int length;
	int lislsize;
}Student;
typedef int Status;
Status chushi(Student &L)
{
	L.elem = (ElemType *)malloc(10 * sizeof(ElemType));
	L.length = 0;
	L.lislsize = 10;
	return 1;
}
Status charu(Student &L,int i,classa e)
{
	classa *p,*q;
	classa *newbase;
	L.length = 3;
	
	
	if(i < 1|| i > L.length + 1)
	{
		printf("对不起,输入的位置超限\n");
		exit(0);
	}
	if(L.length >= L.lislsize)
	{
		newbase = (classa *)realloc(L.elem,(L.lislsize + 1) * sizeof(classa));
		if(!newbase)
		{
			exit(0);
			L.elem = newbase;
			L.lislsize += 1;
		}
		
	}
	q = &L.elem[i - 1];
	for(p = &(L.elem[L.length - 1]); p >= q;p --)
	{
		*(p + 1) = *p; 
	}
	*q = e;
	L.length ++;
}
classa shanchu(Student &L,int i)
{
	classa e;
	L.length = 4;
	if(i < 1 || i > L.length)
	{
		printf("位置不对\n");
		exit(0);
	}
	e = L.elem[i - 1];
	classa *q,*p;
	for(p = q;p <= &L.elem[L.length - 1];p ++)
	{
		*p = *(p + 1);
	}
	L.length --;
	return e;
}
int main()
{
	Student str;
	int i;
	int choice;
	classa *p;
	int s;//插入的位置
	classa e;//插入的元素 
	int k = chushi(str);
	int num;//删除的位置 
	char User[10];
	char Pass[10];
	
	i = sizeof(str) / sizeof(int);
	printf("欢迎来到陈氏系统\n");
	printf("请输入用户名:");
	scanf("%s",User);
	printf("请输入密码:");
	scanf("%s",Pass);
	if(ID(User,Pass) == 1)
	{
	
	printf("********************************************************************\n");
	printf("********************************************************************\n");
	printf("********************************************************************************\n");
	printf("<<<<<<<<<<<<<<<<<<<<<<<<<<<<学生信息管理系统>>>>>>>>>>>>>>>>>>>>>>>>\n");
	printf("********************************************************************************\n");
	printf("********************************************************************\n");
	printf("********************************************************************\n");
	
	printf("请输入三位同学的信息:\n");
	//printf("%d",i);
	for(p = str.elem;p < str.elem + i - 1;p ++)
	{
		scanf("%s %s %d",p ->name,p -> sex,&p -> grade);
	}
	for(p = str.elem;p < str.elem + i - 1;p ++)
	{
		printf("%s %s %d\n",p ->name,p -> sex,p -> grade);
	}
	while(1)
	{
		printf("功能如下:\n");
		printf("**************************\n");
		printf("1,插入操作:\n");
	    printf("**************************\n");
		printf("2,删除操作:\n");
		printf("**************************\n");
		printf("请输入你的选择:");
		scanf("%d",&choice);
		switch(choice)
		{
			case 1:
				printf("请输入要插入的位置和元素信息:\n");
				printf("位置\t姓名\t性别\t成绩\n");
				scanf("%d %s %s %d",&s,e.name,e.sex,&e.grade);
				charu(str,s,e);
				printf("修改后的个人信息:\n");
					for(p = str.elem;p < str.elem + i;p ++)
	                {
		               printf("%s %s %d\n",p ->name,p -> sex,p -> grade);
                   	}
				
				break;
			case 2:
				printf("请输入要删除的位置:");
				scanf("%d",&num);
				e = shanchu(str,num);
				printf("删除的同学为:名字:%s\t性别:%s\t%d\n",e.name,e.sex,e.grade);
				printf("修改后的个人信息:\n");
				for(p = str.elem;p < str.elem + i - 1;p ++)
	                {
		               printf("%s %s %d\n",p ->name,p -> sex,p -> grade);
                   	}
				
				
				break;
					
		}
	}
}
else
{
	printf("恭喜你,未能成功登录\n");
	printf("你的会员已经到期或你还未注册为会员\n");
	printf("如果你想成为我们的会员\n");
	printf("标准如下:\n");
	printf("1,给钱\n"); 
	printf("2,guntuzi\n");
	printf("请输入你的选择:");
	scanf("%d",&choice);
	switch(choice)
	{
		case 1:
			printf("可以成为我们的会员\n");
			break;
		case 2:
			exit(0);
			break;
	}
	
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大数据技术与应用实习周记全文共1页,当前为第1页。大数据技术与应用实习周记全文共1页,当前为第1页。大数据技术与应用实习周记 大数据技术与应用实习周记全文共1页,当前为第1页。 大数据技术与应用实习周记全文共1页,当前为第1页。 2020年6月15日,中北大学软件学院与优逸客校企合作大数据方向实训班级UBDF2006班正式开训。本周为软件学院的大数据方向课程第一周,班级人数总共为38人,本周课程实训过程内容主要如下: 一、实训内容 根据OBE(成功导向)的教学理念,深入聚焦学生解决复杂工程问题能力的培养,本周主要为实训学员讲解了软件工程管理相关理论知识以及相关过程文档的编写、相关项目管理工具的使用,比如UML图、Git版本控制系统以及MarkDown文档编写技巧、服务器部署技术等。具体的讲解内容如下: 二、实训过程 1、开班典礼 开班典礼一直为我们的传统,在正式上课之前为学员举办一个典礼,采用员工化思想培养学员,让学员认识到角色的转变,为将来进入职场打下基础。 2、实训授课 本次授课采用全线上直播授课,在讲解过程中为了避免同学中网路波动等问题,在授课过程中学员可随时提出疑问在线解答,同时采用在线连麦方式提问学员的掌握程度,并且为锻炼学员的表达能力,每天中午都会抽取半小时时间让学员进行主题演讲,锻炼学员的自信与表达能力。 在实训过程中每天都会让学员通过平台汇报自己的知识掌握程度以及通过在线考试方式检测学员的学习情况,每日会对学员提出问题进行解答,为学员制造更好的学习氛围。实训过程中学员的在线连线。 3、学员主题演讲风采 4、学员日周报 三、实训感言 在本次一周的上课中,充分感受到了中北学员的热情以及对学习的热爱,在实训过程中学员有不同的问题能积极反馈,并且能在实训过程中为我们的实训课程提出一些宝贵的意见。 实训不仅是一次传道授业的过程中,在和学员的相处过程中,能被学员的刻苦学习的精神感染,在授课过程中,自己也有了更好的心情为学员解决问题,把好学员走向社会的最后几步。 大数据技术与应用实习周记
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值