排序都有哪几种方法?请列举。用JAVA实现一个快速排序

2023-06-30   


排序的方法有:插入排序(直接插入排序、希尔排序),交换排序(冒泡排序、快速排序),选择排序(直接选择排序、堆排序),归并排序,分配排序(箱排序、基数排序)
   用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等。
   插入排序:
   package org.rut.util.algorithm.support;
   import org.rut.util.algorithm.SortUtil;
   /**
   * @author treeroot
   * @since 2006-2-2
   * @version 1.0
   */
   public class InsertSort implements SortUtil.Sort
   /* (non-Javadoc)
   * @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])
   */
   public void sort(int[] data)
   int temp;
   for(int i=1;i0)&&(data[j]2;i/=2)
   for(int j=0;j1) quickSort(data,k+1,j);
  
  
   /**
   * @param data
   * @param i
   * @param j
   * @return
   */
   private int partition(int[] data, int l, int r,int pivot)
   do
   while(data[++l]pivot);
   SortUtil.swap(data,l,r);
  
   while(l0)
   int j=stack[top--];
   int i=stack[top--];
  
   pivotIndex=(i+j)/2;
   pivot=data[pivotIndex];
  
   SortUtil.swap(data,pivotIndex,j);
  
   //partition
   l=i-1;
   r=j;
   do
   while(data[++l]pivot));
   SortUtil.swap(data,l,r);
  
   while(lTHRESHOLD)
   stack[++top]=i;
   stack[++top]=l-1;
  
   if((j-l)>THRESHOLD)
   stack[++top]=l+1;
   stack[++top]=j;
  
  
  
   //new InsertSort().sort(data);
   insertSort(data);
  
   /**
   * @param data
   */
   private void insertSort(int[] data)
   int temp;
   for(int i=1;i0)&&(data[j]


相关内容:

  1. 公司JAVA开发面试题
  2. Java程序员面试题
  3. 用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
  4. Java基础类库面试题
  5. 大唐电信科技股份有限公司java工程师面试经历
  6. Java中有几种方法可以实现一个线程?用什么关键字修饰同步方法?stop()和suspend()方法为何不推荐使用?