例子-台湾敏捷方法AgileMethod.ppt

  1. 1、本文档共334页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例子-台湾敏捷方法AgileMethod

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Shell Sort Design Sketch * Shell sort 依increment將數列分成數個子數列,分別做insertion sort 從子數列第二個元素起,向右隔increment個元素,逐一insert至左邊已sort之子數列 0 1 0 1 0 1 9 6 3 4 1 2 0 1 2 … n-2 n-1 0 1 0 1 0 1 1 6 3 4 9 2 0 1 2 … n-2 n-1 0 1 0 1 0 1 1 2 3 4 9 6 0 1 2 … n-2 n-1 0 0 0 0 0 0 1 2 3 4 6 9 0 1 2 … n-2 n-1 餘數 數值 索引 increment = 1 increment = 2 定increment(此為2) 將數列分成increment個子數列 將第0子數列(灰色) 做 insertion sort (得 1, 3, 9) 直到做完所有子數列 遞減 increment 為 increment/2, 並依上述處理,直到increment為1 到此即完成sort 數列 : : Shell Sort Design Sketch (cont.) (下面是開發者看到 design sketch 時的 內心思考,不寫出文件的) 1. increment 2 時,array分為兩個 子陣列: k=1: {9 3 1} k=2: {6 4 2} 分別做 insertion sort 2. 遞迴做 shell sort,每次increment 減半, 直到1 (即退化為 insertion sort) * Shell Sort pseudo code public int[] shellSort (int increment) 1.for 子陣列 k from 1 upto increment, 分別做insertion sort for i from 1+k upto N-1 by increment, 逐一插至左邊 array使變大之 array保持已sort for j from i downto 1+k by increment if array[j] 左邊元素 then swap二元素 else 已插至定位,離開迴圈 end if end for end for end for 2.遞迴做shell sort,每次increment 減半,直到1 3. return array * Shell Sort source code public int[] shellSort (int increment) { /*1.for 子陣列 k from 1 upto increment, 分別做insertion sort*/ for (int k=1; k=increment; k++){ /* for i from 1+k upto N-1 by increment, 逐一插至左邊array 使變大之 array保持已sort*/ for (int i=1+k; i=array.length-1; i=i+increment;){ /* for j from i downto 1+k by increment */ for (int j=i; j=k+1; j=j-increment;){ /*if array[j]左邊元素 then swap二元素*/ if (array[j]array[j-increment]) swap(j,j-

文档评论(0)

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

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

1亿VIP精品文档

相关文档