適配器模式

現有一個接口DataOperation定義了排序方法sort(int[]) 和查找方法search(int[], int),已知類QuickSortquickSort(int[])方法實現了快速排序算法,類BinarySearch binarySearch(int[], int)方法實現了二分查找算法。現使用適配器模式設計一個系統,在不修改源代碼的情況下將類QuickSort和類BinarySearch的方法適配到DataOperation接口中。繪製類圖並編程實現。(要求實現快速排序和二分查找)


package AdapterMode;


public class QuickSort {

public void quickSort(int[]a,int first, int end){

if(first<end){

int pivot = partition(a,first,end);

quickSort(a,first,pivot-1);

quickSort(a,pivot+1,end);

}

}

public  int partition(int[] a , int first , int end){

int i = first; int j = end;

while(i<j){

while(i<j&&a[i]<=a[j])j--;

if(i<j){

int temp;

temp = a[i];

a[i]=a[j];

a[j]= temp;

i++;

}

while(i<j&&a[i]<=a[j])i++;

if(i<j){

int temp;

temp = a[j];

a[j]=a[i];

a[i]= temp;

j--;

}

}

return i ;

}

}



package AdapterMode;


public class BinarySearch {



public int binarySearch(int srcArray[],int key){ 

 int mid = srcArray.length / 2;

 if (key == srcArray[mid])

 { 

         return mid;        

       }   

 int start = 0;      

 int end = srcArray.length - 1; 

 while (start <= end)

 {

 

 mid = (end - start) / 2 + start;   

 if (key < srcArray[mid]) 

 {     

 end = mid - 1;            

 } 

 else if (key > srcArray[mid]) 

{                

 start = mid + 1;     

} else 

return mid;    

}

            

 }  

return -1;  


}

}



package AdapterMode;


public interface DataOperation {

public void sort(int r[]); 


public int  search(int r[],int n); 

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章