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

响应式布局模板网站免费下载百度百度一下

响应式布局模板网站免费下载,百度百度一下,专业设计自学网站,室内装饰设计学什么第1章 数据结构绪论 程序设计数据结构算法 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合 1.逻辑结构 #xff1a;是指数据对象中数据元素之间的相互关系 a#xff1a;集合结构 b#xff1a;线性结构 c#xff1a;树形结构 d#xff1a;图形结构 2.物理结…第1章 数据结构绪论 程序设计数据结构算法 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合 1.逻辑结构 是指数据对象中数据元素之间的相互关系 a集合结构  b线性结构  c树形结构  d图形结构 2.物理结构在计算机中的存储形式 a: 循序存储  b: 链式存储 第2章 算法 算法: 是解决特定问题求解步骤的描述在计算机中表现为指令的有限序列并且每条指令表示一个或多个操作 特性1.输入输出 2.有穷性 3.确定性 4.可行性 算法设计的要求: 1.正确性 2.可读性 3.健壮性 4.时间效率高和存储量低 算法的时间复杂度: 推导大O阶方法: 1. 用常数1取代运行时间中的所有加法常数 2.在修改后的运行次数函数中只保留最高阶项 3.如果最高价项存在且不是1则去除与这个项相乘的常数 常数阶O(1)  ;   线性阶:   O(n) ;  对数阶:O(logn) ;  平方阶: O(n2) O(1)     O(logn)    O(n)     O(nlogn)   O(n2)    O(n3)     O(2n)   O(n!)    O(nn) 第3章 线性表 线性表:零个或多个数据元素的有限序列 1.顺序存储结构: 优点缺点无须为表示表中元素之间的逻辑关系而增加额外的存储空间插入和删除操作需要移动大量元素可以快速地存取表中任一位置的元素当线性表长度变化较大时难以确定存储空间的容量 造成存储空间的“碎片”  2.链式存储结构 单链表: 单链表与顺序存储结构作比较: 存储分配方式时间性能空间性能顺序存储用一段连续的存储单元依次存储线性表的数据元素查找顺序O(1),单链O(n)差单链表采用链式存储结构用一组任意的存储单元存放线性表的元素插入删除:顺序:O(n),单链:O(1)好  静态链表:用数组描述的链表 优点缺点在插入和删除操作时只需要修改游标不需要移动元素没有解决连续存储分配带来的表长难以确定的问题 失去了顺序存储结构随机存取的特性  循环链表:将单链表中终端结点的指针由空指针改为指向头结点,就使整个单链表形成一个环这种头尾相接的单链表称为单循环链表简称循环链表 双向链表:在单链表的每个结点中再设置一个指向其前驱结点的指针域 第4章 栈与队列 栈:限定仅在表尾进行插入和删除操作的线性表 后进先出,(3种元素就有5种可能的出栈顺序) 栈的顺序存储结构进栈出栈O(1) 两栈共享空间 栈的链式存储结构,0(1) 斐波那契数列 0 ,当n0 1,当n1 F(n) F(n-1) F(n-2),当n1 四则运算表达式求值:后缀表达法逆波兰 ----------------------------------------------------------------- 队列:只允许在一端进行插入操作而在另一端进行删除操作的线性表 先进先出 第5章 串 由零个或多个字符组成的有限序列,字符串 朴素的模糊匹配算法最好O(nm),n为主串长度m为子串长度,最差:O((n-m1)*m) KMP模式匹配算法:O(nm) 第6章 树 完全二叉树 二叉树遍历方法1.前序遍历 2.中序遍历 3.后序遍历 4.层序遍历  线索二叉树 赫夫曼树 第7章 图  第8章 查找 1.静态查找 顺序查找:O(n) /* 无哨兵顺序查找a为数组n为要查找的数组个数key为要查找的关键字 */ int Sequential_Search(int *a,int n,int key) {int i;for(i1;in;i){if (a[i]key)return i;}return 0; } /* 有哨兵顺序查找 */ int Sequential_Search2(int *a,int n,int key) {int i;a[0]key;in;while(a[i]!key){i--;}return i; } 有序表查找 二分查找:O(logn)/* 折半查找 */ 递归算法 static int BinarySearch2(int[] a, int value, int low, int high){int mid (low high) / 2;if (a[mid] value)return mid;else if (a[mid] value)return BinarySearch2(a, value, low, mid);else if (a[mid] value)return BinarySearch2(a, value, mid, high);else return 0;} 非递归算法 int Binary_Search(int *a,int n,int key) {int low,high,mid;low1; /* 定义最低下标为记录首位 */highn; /* 定义最高下标为记录末位 */while(lowhigh){mid(lowhigh)/2; /* 折半 */if (keya[mid]) /* 若查找值比中值小 */highmid-1; /* 最高下标调整到中位下标小一位 */else if (keya[mid])/* 若查找值比中值大 */lowmid1; /* 最低下标调整到中位下标大一位 */else{return mid; /* 若相等则说明mid即为查找到的位置 */}}return 0; }c#版本: static int Test(int[] a,int x) { int low 0, high a.Length-1, mid; while (low high) { mid (low high) / 2; if (x a[mid]) { high mid - 1; } else if (x a[mid]) { low mid 1; } else { return mid; } } return 0; }   插值查找:O(logn) /* 插值查找 */ int Interpolation_Search(int *a,int n,int key) {int low,high,mid;low1; /* 定义最低下标为记录首位 */highn; /* 定义最高下标为记录末位 */while(lowhigh){midlow (high-low)*(key-a[low])/(a[high]-a[low]); /* 插值 */if (keya[mid]) /* 若查找值比插值小 */highmid-1; /* 最高下标调整到插值下标小一位 */else if (keya[mid])/* 若查找值比插值大 */lowmid1; /* 最低下标调整到插值下标大一位 */elsereturn mid; /* 若相等则说明mid即为查找到的位置 */}return 0; } 斐波那契查找 线性索引查找 稠密索引在线性索引中将数据项的每个记录对应一个索引项。 分块索引分块有序的数据集将每块对应一个索引项。 倒排索引由属性值来确定记录的位置。 2.动态查找查找时需要插入和删除 二叉排序树O(logn)-O(n) 平衡二叉树(AVL树)O(logn) B树(多路查找树) 2-3树 2-3-4树 B树 散列表查找 直接定址法数学分析法平方取中法折叠法除留余数法随机数法 处理散列冲突的方法1.开放定址法2再散列函数法3.链地址法4公共溢出区法 第9章 排序 排序插入排序类选择排序类交换排序类归并排序类直接插入排序希尔排序简单选择排序堆排序冒泡排序快速排序归并排序排序方法平均情况最好情况最坏情况辅助空间稳定性 冒泡排序 O(n2) O(n) O(n2) O(1)稳定 简单选择排序 O(n2) O(n2) O(n2) O(1)稳定  直接插入排序 O(n2) O(n) O(n2) O(1)稳定  希尔排序 O(nlogn)-O(n2) O(n1.3) O(n2) O(1)不稳定  堆排序 O(nlogn) O(nlogn) O(nlogn) O(1)不稳定  归并排序 O(nlogn) O(nlogn) O(nlogn) O(n)稳定  快速排序 O(nlogn) O(nlogn) O(n2) O(nlogn)-O(n2)不稳定   假设含有n个记录的序列为{r1,r2,.....rn},其对应的关键字分别为{k1,k2...kn}, 需确定1,2。。。N的一种排列p1,p2,...pn,使其相应的关键字满足kp1kp2...kpn 非递减或非递增关系即使得序列成为一个按关键字有序的序列{rp1,rp2...rpn},这样的操作叫做排序 排序的稳定性 假设kikj,且在排序前的序列中ri领先于rj,如果排序后仍然领先则是稳定的反之是不稳定的。 内排序与外排序 内排序所有记录放在内存中外排序需要在内外存之间多次交换数据才能进行。 冒泡排序: int[] array { };void swap(int[] array, int i, int j){int temp array[i];array[i] array[j];array[j] temp;}///冒泡排序1///void bubblesort1(int[] array){for (int i 0; i array.Length;i ){for (int j i 1; j array.Length;j ){if (array[i] array [j]){swap(array, i, j);}}}}///冒泡排序2///void bubblesort2(int[] array){for (int i 0; i array.Length; i){for (int j array.Length-1; j i; j--){if (array[i] array[j]){swap(array, i, j);}}}}///冒泡排序3///void bubblesort3(int[] array){bool flag true;for (int i 0; i array.Length flag; i){flag false;for (int j array.Length - 1; j i; j--){if (array[i] array[j]){swap(array, i, j);flag true;}}}} 冒泡排序时间复杂度O(n2)  简单选择排序: 简单选择排序//void selectSort(int[] array){int i,j,min;for (i 0; i array.Length-1; i ){min i;for (j i 1; j array.Length-1; j){if (array[min] array[j]){min j;}}if (i ! min){swap(array,i,min);}}} 简单选择排序时间复杂度O(n2)  直接插入排序: 扑克牌 /// summary/// //直接插入排序////// /summaryvoid insertSort(int[] array){int t,i, j;for (i 1; i array.Length; i){if (array[i] array[i - 1]){t array[i];for (j i - 1; j 0; j--){array[j 1] array[j];}array[j 1] t;}}} 直接插入排序时间复杂度O(n2)   希尔排序: static void shellSort(int[] array){int i, j, temp;int increment array.Length;do{increment increment / 3 1;for (i increment; i array.Length; i){if (array[i] array[i - increment]){temp array[i];for (j i - increment; j 0 temp array[j]; j - increment){array[j increment] array[j];}array[j increment] temp;}}}while (increment 1);} 希尔排序时间复杂度O(n3/2) 不稳定 堆排序: 堆是具有下列性质的完全二叉树 每个结点的值都大于或等于其左右孩子结点的值称为大顶堆 每个结点的值都小于或等于其左右孩子结点的值称为小顶堆 static void HeapSort(int[] array){int i;for (i array.Length / 2 - 1; i 0; i--)HeapAdjust(array, i, array.Length - 1);for (i array.Length - 1; i 1; i--){swap(array, 0, i);HeapAdjust(array, 0, i - 1);}}static void HeapAdjust(int[] array, int i, int m){int temp, j;temp array[i];for (j 2 * i; j m; j * 2){if (j m array[j] array[j 1])j;if (temp array[j])break;array[i] array[j];i j;}array[i] temp;} 时间复杂度O(nlogn) 不稳定 归并排序: 时间复杂度O(nlogn) 稳定 快速排序: 原始版本 static void QuickSort(int[] array, int low, int high){int pivot;if(low high){pivot Partition(array,low,high);QuickSort(array, low, pivot - 1);QuickSort(array, pivot 1, high);}}static int Partition(int[] array, int low, int high){int pivotkey array[low];while (low high){while (low high array[high] pivotkey)high--;swap(array, low, high);while (low high array[low] pivotkey)low;swap(array, low, high);}return low;} 1 优化选取枢轴 优化后的快速排序 static void QuickSort(int[] array, int low, int high){int pivot;//优化小数组时的排序方案if ((high - low) 50){//优化递归操作while (low high){pivot Partition(array, low, high);QuickSort(array, low, pivot - 1);//对低子表进行递归排序//QuickSort(array, pivot 1, high);low pivot 1;//尾递归}}//else//直接插入排序 }static int Partition(int[] array, int low, int high){//优化选取枢轴int m low (high - low) / 2;if (array[low] array[high])swap(array, low, high);if (array[m] array[high])swap(array, m, high);if (array[m] array[low])swap(array, m, low);int pivotkey array[low];int temp pivotkey;while (low high){while (low high array[high] pivotkey)high--;//优化不必要的交换//swap(array, low, high);array[low] array[high];while (low high array[low] pivotkey)low;//优化不必要的交换//swap(array, low, high);array[high] array[low];}array[low] temp;return low;} 快速时间复杂度O(nlogn) net SDK版本 void QuickSort(int[] map, int left, int right) {do {int i left;int j right;int x map[i ((j - i) 1)];do {while (i map.Length CompareKeys(x, map[i]) 0) i;while (j 0 CompareKeys(x, map[j]) 0) j--;if (i j) break;if (i j) {int temp map[i];map[i] map[j];map[j] temp;}i;j--;} while (i j);if (j - left right - i) {if (left j) QuickSort(map, left, j);left i;}else {if (i right) QuickSort(map, i, right);right j;}} while (left right);} 不稳定转载于:https://www.cnblogs.com/smileberry/archive/2013/02/01/2889579.html
http://www.huolong8.cn/news/33933/

相关文章:

  • 网站搭建行业松原做招聘的网站有哪些
  • 西部数码网站管理助手 mysql基层建设是哪个网站的
  • 定期更新网站微信公众号菜单跳转的网页怎么制作
  • 西安seo网站管理个人简历免费导出
  • 南城仿做网站智慧团建网站怎么转团关系
  • 成都房产网官方网站建设手机网站的方案
  • 深圳制作网站公司哪里好书画展示网站源码
  • 怎样做网站设计要交税吗个安装wordpress
  • 化学网站定制房地产怎么白手起家
  • 找工程去哪个网站网站制作公司兴田德润简介
  • 2网站建设张家界网站建设app
  • 苏州市工业园区规划建设局网站网站建设比较合理的流程
  • 商业网站页面公司广告墙设计图片
  • wap网站html5顺德网站建设报价
  • 美妆网站建设环境分析万网封停慧聪网域名事件
  • 开发网站公司地址做网站用的浏览器有哪些
  • 二级网站都在一台服务器怎么做域名苏州 手机网站
  • 做网站需要每年都缴费吗涿州市住房和城乡建设局网站
  • 网站透明效果旅游景点网站策划书
  • 用asp.net做的网站框架推广策略和推广方案一样吗
  • 北京做网站建设公司哪家好做网站嘉兴
  • 建筑设计网站排行榜0元可以注册公司吗
  • 建站设计网站网站管家
  • excel网站链接怎么做网上书店网站建设设计的收获
  • 网站查询访问产品推广文案100字
  • 网站描述标签优化南京网站开发南京乐识正规
  • 英文网站推荐网站优化 西安
  • 国内好的设计网站西安网站建设瑞信
  • 网站开发违约责任优质做网站价格
  • 网站栏目页排名网站移动站