首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java-冒泡排序、抉择排序、快速排序、插入排序

2012-12-18 
java-冒泡排序、选择排序、快速排序、插入排序////快速排序法class QuerySort{public void sort(int left,int

java-冒泡排序、选择排序、快速排序、插入排序

////快速排序法class QuerySort{   public void sort(int left,int right,int []array)   {   int l=left;   int r=right;   int pivot=array[(left+right)/2];   int temp=0;   while(l<r)   {   while(array[l]<pivot) l++;   while(array[r]>pivot) r--;      if(l>=r) break;      temp=array[l];   array[l]=array[r];   array[r]=temp;      if(array[l]==pivot) --r;   if(array[r]==pivot)  ++l;   }   if(l==r)   {   l++;   r--;   }   if(left<r) sort(left,r,array);   if(right>l) sort(l, right, array);      }}////插入排序class  InsertSort{public void sort(int arr[]){for(int i=1;i<arr.length;i++){int insertVal=arr[i];///insertVal准备和前一个数比较int index=i-1;while(index>=0&&insertVal<arr[index]){///将arr[index]向后移动arr[index+1]=arr[index];///让index向前移index--;}///将insertVal插入适当位置arr[index+1]=insertVal;}}}////  选择排序class Select{public void sort(int arr[]){   int temp;for(int j=0;j<arr.length-1;j++){////默认第一个j数最小int min=arr[j];///记录最小数的下标minIndexint minIndex=j;for(int k=j+1;k<arr.length;k++){if(min>arr[k]){min=arr[k];   minIndex=k;     }}///退出内部for时找到这次的最小值///用中间变量记录arr[j]temp=arr[j];///将arr[j]和最小值arr[minIndex]替换arr[j]=arr[minIndex];///将arr[minIndex]赋值为中间变量temparr[minIndex]=temp;}}}////冒泡排序class Bubble{public void sort(int arr[]){int temp;////外层排序,决定要走几趟for(int i=0;i<arr.length-1;i++){ ////内层排序,逐个比较,前一个数比后一个数打,则交换位置for(int j=0;j<arr.length-1-i;j++)      /////arr.length-1-i{if(arr[j]>arr[j+1]){temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}}}}

热点排行