数据结构与算法基本概念

一、基本数据结构:

基本数据结构的定义、特性、运算、算法。

基本数据结构的分类(逻辑结构):

(1)线性结构:线性表、栈、队列、双队列、数组、广义表、串

(2)非线性结构:树、二叉树、图、网

存储结构:

(1)顺序存储:向量、一维数组

(2)链式存储:链表

 二、算法:

查找:顺序、折半、分块、哈希、二叉排序树

排序:直接插入、冒泡、选择、希尔、快速排序、堆排序、2-路归并、基数排序

算法分析:

时间复杂度:算法的时间开销相对于问题规模的变化趋势

T(n)=O(f(n))  

 n:问题的规模   f(n):基本操作执行次数总和  。 常见的时间复杂度类型:常量阶、线性阶、平方阶、对数阶、指数阶

O(1)、O(n)、O(n的平方)、O(log2n)、O(nlog2n)、O(2的n次方)


冒泡排序最好、最坏时间复杂度:

void bubble(int a[],int n)
{
	int i,j,temp;
	for(i=1;i<n;i++)            //   n-1
		for(j=0;j<n-i;j++)  //   n-1+n-2+n-3+...+1=n(n-1)/2
		  if(a[j]>a[j+1])   //   n(n-1)/2
		  {
		      temp=a[j];    //  0或n(n-1)/2
		      a[j]=a[j+1];  //0或n(n-1)/2
		      a[j+1]=temp;  //0或n(n-1)/2
	  
		  }

    for(i=0;i<n;i++)        //   n次
    printf("%d ",a[i]);     //   n次
}

1.2.3.4.5    5.4.3.2.1

最好情况:f(n)=n*n+2n-1  O(n*n)     最坏情况:f(n)=5n*n/2+n/2-1   O(n*n)

空间复杂度:

三、数据结构:

相互之间存在一种或多种特定关系的数据元素的集合。

Data_Structure=(D,S)   D:数据元素的集合   S:关系的集合

4种基本结构:集合、线性结构、树、图状结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值