插入排序-希尔排序-冒泡排序-快速排序(Java实现)

 /*
    插入排序,i控制未排序的首个,j控制以排序的最后一个,外层循环控制总进度
    内层循环控制插入大小,当未排数比以排数小,则将以排数向后移动
    即将j位置的值赋值给后一个位置
    */
    public  static  void  insertionSort(int[] array){
        for (int i=1;i=0&&array[j]>temp){
                array[j+1]=array[j];
                j--;
            }
            array[j+1]=temp;
        }
    }
    /*
    冒泡排序,i控制总进度,共i-1趟
     */
    public static void swap(int[] array,int i,int j){
        int temp=array[i];
        array[i]=array[j];
        array[j]=temp;
    }
    public static void bubbleSort(int[] array){
        for(int i=0;iarray[j])minIndex=j;
            }
            swap(array,i,minIndex);
        }
    }
    /*
    希尔排序:在直接插入排序的基础上进行增量分组,适用于基本有序的状态
     */
    public static void shellSort(int[] array){
        for(int step=array.length/2;step>0;step=step/2){//控制步长
            for (int i=0;i=0&&array[k]>temp){
                        array[k+step]=array[k];
                        k-=step;
                    }
                    array[k+step]=temp;
                }
            }
        }
    }
    /*
    快速排序
     */
    public static void quickSort(int[] array,int left,int right){
        int l=left;
        int r=right;
        if(left>=right){
            return;
        }else {
            swap(array,left,(left+(right-left)/2));
            boolean flag=true;//flag控制循环方向,true为从右往左,false为从左往右
            while (l

 

你可能感兴趣的:(插入排序-希尔排序-冒泡排序-快速排序(Java实现))