1 / 92
文档名称:

17-数据结构常见算法.ppt

格式:ppt   大小:882KB   页数:92页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

17-数据结构常见算法.ppt

上传人:63229029 2016/12/21 文件大小:882 KB

下载得到文件列表

17-数据结构常见算法.ppt

相关文档

文档介绍

文档介绍:数据结构算法数据结构?数据结构是一门研究非数值计算的程序设计问题中的操作对象(结点) 以及它们之间关系和操作等的学科。? 1968 年克努思教授开创了数据结构的最初体系,他所著的《计算机程序设计艺术》第一卷《基本算法》是第一本较系统地阐述数据的逻辑结构和存储结构及其操作的著作。 70 年代初,数据结构作为一门独立的课程开始进入大学课堂。?下面介绍数据结构中常见的一些基本算法?关于算法?线性表上的常见算法?基于队列的常见算法?基于栈的常见算法算法?多项式求的两种方法– A(x )=a nx n +a n-1x n-1+…+a 0– A(x )=((a n x+a n-1 )X+a n-2)…+a 0– A(x )=a nx n +a n-1x n-1+…+a 0 template< typename T> T Poly1(T a[],int n,T x) { int i,j; T result=0; T xn,xx ; for( i=0;i< n;i ++) { xn =1; xx=x; for(j =0;j< i;j ++) xn = xn * xx; result= a[i ]* xn+result ;} return result; } – A(x )=((a n x+a n-1 )X+a n-2)…+a 0 template< typename T> T Poly2(T a[],int n,T x) { int i,j; T result=0; T xn,xx ; result=a[n-1]; for( i=n-1;i>0;i--) result= result * x+a[i-1]; return result; } 线性表 O(n )的算法,实现将数组 A[n ]中所有元素循环右移 K个位置 ,设计算法将其调整为左右两部分, 左边元素为奇数,右边元素为偶数 ,设计算法,实现在单链表中删去系统的多余结点 ,设计算法,实现在单链表中删去系统的多余结点 :数字、字母和其他字符。编写算法,构造三个循环链表,使得每个循环链表中之包含同一类字符返回设计一个时间复杂度为 O(n )的算法,实现将数组 A[n ]中所有元素循环右移 K个位置?算法分析 k<n k>n 。 k= k%N 13 12 11 10 9876543210 14 11 10 9876543210 14 13 12 12 11 10 9876543210 14 13 14 13 12 11 10 9876543210 A B(k =1) B(k =2) B(k =3) j=( i+k)%N int i,j,n ; int * a; cin >>n>>k; k= k%n ; a=new int[n ]; for (i=0;i< n;i ++) cin >>> a[i ]; for (i=0;i<< n;i ++){ j=( i+k)%n ; b[j ]= a[i ];} 时间复杂度? 空间复杂度? 空间复杂度更少的方法?假设原数组序列为 abcd 1234 ,循环右移了 4位–数组序列为 1234 abcd 。?右移后,有两段的顺序是不变的: 1234 和 abcd ,可把这两段看成两个整体。右移 K位的过程就是把数组的两部分交换一下。变换的过程通过以下步骤完成: ? abcd : abcd 1234 → dcba 1234 ; ? 1234 : dcba 1234 → dcba 4321 ; ? : dcba 4321 → 1234 abcd 。