6适配器模式-组合模式精要.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10. 适配器模式 现有一个接口DataOperation定义了排序方法sort(int[]) 和查找方法search(int[], int),已知类QuickSort的quickSort(int[])方法实现了快速排序算法,类BinarySearch 的binarySearch(int[], int)方法实现了二分查找算法。现使用适配器模式设计一个系统,在不修改源代码的情况下将类QuickSort和类BinarySearch的方法适配到DataOperation接口中。绘制类图并编程实现。 (要求实现快速排序和二分查找) interface DataOperation{ ---; ---; } class QuickSort{ public int[] quickSort(int[] num){ return sort(num,0,num.length-1); } private int[] sort(int[] num,int left,int right){ if(left right){ //将第一个数作为参照轴 int s = num[left]; int i = left; int j = right+1; while(true){ //从左向右找,直到找到比S大的数 while(i+1num.length num[++i]s); //从右向左找,直到找到比S小的数 while(j-1-1 num[--j]s); //此时如果i=j,则说明已交叉,跳出该永久循环 if(i = j){ break; } //否则如果i=j,则交换下标为i和下标为j的两元素的值 swap(num,i,j); } //把比S小的数放到下标为left处 num[left] = num[j]; //最后将轴S置于比它小和比它大的两组数之间 num[j] = s; //对S的左右两侧分别再次使用快速排序 sort(num,left,j-1); sort(num,j+1,right); } return num; } private void swap(int[] num,int i,int j){ int t; t = num[i]; num[i] = num[j]; num[j] = t; } } class BinarySearch{ public int binarySearch(int[] num,int x){ int low = 0; int high = num.length - 1; while(low = high){ //此时抛出ArrayIndexOutOfBoundsException 异常.. int mid = low + (high - low)/2; int midVal = num[mid]; if(x midVal){ low = mid + 1; }else if (x midVal){ high = mid - 1; }else{ return mid; } } return -1; //没找到元素x } } ---{ QuickSort quickSort=new QuickSort(); BinarySearch binarySearch =new BinarySearch(); @Override public int search(int[] list, int number) { return ---; } @Override public void sort(int[] list) { ---; } } class DataOperationClient{ public static void main(String a[]) { ---;//适配器DataOperationAdapter int[] list={1,3,56,23,54,86,43,57,88,56,82,90}; System.out.println(List before sort: ); for(int i=0;ilist.length;i++){ System.out.print(list[i]+ ); } ---; System.out.println(\nList after sort: ); for(int i=

文档评论(0)

三哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档