算法设计和分析部分算法伪代码.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 蛮力法 选择排序 SelectionSort(A[0..n-1]) for i=0 to n-2 do min=i for j=i+1 to n-1 do if A[j]A[min] min=j swap A[i] and A[min] 冒泡排序 BubbleSort(A[0..n-1]) // 输入:数组A,数组中的元素属于某偏序集 // 输出:按升序排列的数组A for i=0 to n-2 do for j=0 to n-2-i do if A[j+1]A[j] swap A[j] and A[j+1] 改进的冒泡算法 ALGORITHM BubbleSortImproved( A[0,…,n – 1] ) // 冒泡排序算法的改进 // 输入:数组A,数组中的元素属于某偏序集 // 输出:按升序排列的数组A for i ← 0 to n – 2 do flag ← True for j ← 0 to n – 2 – i do if A[j+1] A[j] swap(A[j], A[j+1]) flag ← False // 如果在某一轮的比较中没有交换,则flag为True,算法结束 if flag = True return 顺序查找算法 算法 SwquentialSearch2(A[0...n],k) //顺序查找算法的实现,它用了查找键来作限位器 //输入:一个n个元素的数组A和一个查找键K //输出:第一个值等于K的元素的位置,如果找不到这样的元素就返回 -1 A[n]--k i--0 while A[i]!=K do i--i+1 if in return i Else return -1 蛮力字符串匹配 算法 BruteForceStringMatch(T[0...n-1],P[0...m-1]) //该算法实现了蛮力字符串匹配 //输入:一个n个字符的数组T[0...n-1]代表一段文本 // 一个m个字符的数组P[0..m-1]代表一个模式 //输出:如果查找成功的话,返回文本的第一个匹配字串中第一个字符的位置, // 否则返回-1 For i--0 to n-m do j--0 While jm and P[j]=T[i+j]do j--i+1 If j=m return i return -1 合并排序最差Θ(nlog2n) 快速排序最优Θ(nlog2n) 最差Θ(n2) 平均Θ(1.38nlog2n) 选择排序 Θ(n2) 冒泡排序 Θ(n2) 插入排序最差Θ(n2) 最优 Θ(n) 平均 Θ(n2) 第四章 分治法 合并排序 算法 MergeSort(A[0..n-1] ) // 递归调用mergesort来对数组 A[0...n-1] 排序 // 输入:一个可排序数组A[0..n-1] // 输出:非降序排列的数组A[0..n-1] if n 1 copy A[0..(n/2(-1] to B[0..(n/2(-1] copy A[(n/2(..n-1] to C[0..(n/2(-1] MergeSort( B ) MergeSort( C ) Merge( B,C,A ) 两个数组合并的算法 算法 Merge(B[0..p-1],C[0..q-1],A[0..p+q-1]) //将两个有序数组合并成一个有序的数组 //输入:两个有序数组B[0...p-1]和C[0...q-1] //输出:A[0..p+q-1]中已经有序存放了B和C中的元素 i=0,j=0,k=0; while ip and jq do if B[i]≤C[j] A[k]=B[i], i=i+1 else A[k]=C[j], j=j+1 k

文档评论(0)

0520 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档