当前位置: 首页 > news >正文

wordpress 菜单状态windows优化大师好不好

wordpress 菜单状态,windows优化大师好不好,微信小程序源代码模板,经典的网站设计工具顺序表的基本操作 【建议&#xff1a;如果对结构体还不太理解的话可以先看 C语言-结构体 这篇文章】 插入操作 ListInsert(&L,i,e)&#xff1a;插入操作&#xff0c;在表 L 中的第 i 个位置上插入指定元素 e 代码实现 #include <stdio.h> #include <stdbool.…

顺序表的基本操作

【建议:如果对结构体还不太理解的话可以先看 C语言-结构体 这篇文章】

插入操作

ListInsert(&L,i,e):插入操作,在表 L 中的第 i 个位置上插入指定元素 e

代码实现

#include <stdio.h>
#include <stdbool.h>
#define MaxSize 10typedef struct{int data[MaxSize];int length;
}SqList;void InitList(SqList* L){L->length = 0;
}bool ListInsert(SqList* L, int i, int e){if(i<1 || i>length+1){return false;}if(L->length >= MaxSize){return false;}for(int j = L.length; j >= i; j--){		//将第i个元素及之后的元素后移L->data[j] = L->data[j-1];}L->data[i-1] = e;L->length++;return true;
}int main(){SqList L;InitList(&L);//...向顺序表中插入一些元素...ListInsert(&L,3,3);return 0;
}

时间复杂度分析

  • 最好情况:新元素插入到表尾,不需要移动元素
    i = n+1,循环 0 次 ➡️ 最好时间复杂度 = O(1)
  • 最坏情况:新元素插入到表头,需要将原有的 n 个元素全都向后移动
    i = 1,循环 n 次 ➡️ 最坏时间复杂度 = O(n)
  • 平均情况:假设新元素插入到任何一个位置的概率相同,即 i = 1,2,3,…,length+1 的概率都是 p = 1 n + 1 p=\frac{1}{n+1} p=n+11
    i = 1 时,循环 n 次;i = 2 时,循环 n-1 次,…… ,i = n+1 时,循环 0 次
    平均循环次数 = np + (n-1)p + …… + 1·p = n ( n + 1 ) 2 1 n + 1 \frac{n(n+1)}{2}\frac{1}{n+1} 2n(n+1)n+11 = n 2 \frac{n}{2} 2n ➡️ 平均时间复杂度 = O(n)

删除操作

ListDelete(&L,i,&e)删除操作,删除表 L 中第 i 个位置的元素,并用 e 返回删除元素的值

代码实现

#include <stdio.h>
#include <stdbool.h>
#define MaxSize 10typedef struct{int data[MaxSize];int length;
}SqList;void InitList(SqList* L){L->length = 0;
}bool ListDelete(SqList* L, int i, int* e){if(i<1 || i>L->length){return false;}e = L->data[i-1];for(int j = i; j < L; j++){L->data[j-1] = L->data[j];}L->length--;return true;
}int main(){SqList L;InitList(&L);//...向顺序表中插入一些元素...int e = -1;if(ListDelete(&L, 3, &e)){printf("已删除第3个元素,删除元素值为%d\n",e);}else{printf("位序i不合法,删除失败\n");}return 0;
}

时间复杂度分析

  • 最好情况:删除表尾元素,不需要移动元素
    i = n,循环 0 次 ➡️ 最好时间复杂度 = O(1)
  • 最坏情况:删除表头元素,需要将后续的 n-1 个元素全都向前移动
    i = 1,循环 n-1 次 ➡️ 最坏时间复杂度 = O(n)
  • 平均情况:假设删除任何一个元素的概率相同,即 i = 1,2,3,…,length 的概率都是 p = 1 n p=\frac{1}{n} p=n1
    i = 1 时,循环 n-1 次;i = 2 时,循环 n-2 次,…… ,i = n 时,循环 0 次
    平均循环次数 = (n-1)p + …… + 1·p = n ( n − 1 ) 2 1 n \frac{n(n-1)}{2}\frac{1}{n} 2n(n1)n1 = n − 1 2 \frac{n-1}{2} 2n1 ➡️ 平均时间复杂度 = O(n)

按位查找操作

GetElem(L,i)按位查找操作,获取表 L 中第 i 个位置的元素的值

代码实现

ElemType GetElem(SqList* L, int i){return L->data[i-1];
}

时间复杂度:O(1)

按值查找操作

LocateElem(L,e)按值查找操作,在表 L 中查找具有给定关键字值的元素

代码实现

//在顺序表L中查找第一个元素值等于e的元素,并返回其位序
int LocateElem(SqList* L, int e){for(int i = 0; i < L.length; i++){if(L->data[i] == e){return i+1;}}return 0;
}

时间复杂度分析

  • 最好情况:目标元素在表头
    循环 1 次 ➡️ 最好时间复杂度 = O(1)
  • 最坏情况:目标元素在表尾
    循环 n 次 ➡️ 最坏时间复杂度 = O(n)
  • 平均情况:假设目标元素出现在任意一个位置的概率相同,即都是 p = 1 n p=\frac{1}{n} p=n1
    平均循环次数 = n + 1 2 \frac{n+1}{2} 2n+1 ➡️ 平均时间复杂度 = O(n)

本文主要参考《王道计算机考研 数据结构》课程视频

http://www.hrbkazy.com/news/31514.html

相关文章:

  • 公司建设网站怎么作账优化师是一份怎样的工作
  • 电商创业项目有哪些seo详细教程
  • 餐饮业网站源码 织梦关键词搜索热度
  • 南宁seo网站建设费用今日国内新闻大事20条
  • 那个网站ppt做的比较好网络建站工作室
  • 网站建设的困难绍兴seo计费管理
  • 织梦网站程序5.7首页模板百度app旧版本下载
  • 阿里云服务器 个人网站百度公司电话热线电话
  • wordpress个人站无法升级合肥网络推广软件系统
  • 百度联盟做网站赚钱广告联盟app推广
  • 住房和城乡建设部幼儿园网站青岛网站制作设计
  • 江山有做网站开发吗网站排名优化软件
  • 阿里ecs安装wordpress赣州seo公司
  • 做电影网站算侵权吗app推广团队
  • 太原微商网站建设在线工具seo
  • 北京市住房与城乡建设部网站seo网站排名优化价格
  • 网上怎么做营销临沂seo建站
  • 淄博学校网站建设方案百度小说风云排行榜
  • 电费公众号开发独立站seo外链平台
  • 怎样做网站用html深圳外贸网站推广
  • 长沙市建设网站平台的公司网络营销推广有效方式
  • 网页制作模板的网站代码seo课堂
  • 测试一个网站的访问速度热门seo推广排名稳定
  • 全网获客营销系统seo免费
  • 青岛万维网站设计什么是电商?电商怎么做
  • 米拓做的网站如何改代码百度点击器找名风
  • 如何在国内做美国外贸公司网站济南网站万词优化
  • 北京西站列车时刻表成都网站建设制作公司
  • 网站建设的市场调研专业的网页制作公司
  • 网站的网页声明怎么做网站外链怎么发布