博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
希尔排序与快速排序
阅读量:4986 次
发布时间:2019-06-12

本文共 2418 字,大约阅读时间需要 8 分钟。

希尔排序法

希尔排序也是一种插入排序,他是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序

希尔排序交换法

package sort;import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;public class ShellSort {    public static void main(String[] args) {        int[] arr = new int[800000];        for(int i=0;i
0;gap /= 2) { for(int i=gap;i
=0;j -= gap) {//j>=0 j-=gap 确保只循环一次 if(arr[j]>arr[j+gap]) { temp = arr[j]; arr[j]=arr[j+gap]; arr[j+gap]=temp; } } } //System.out.println(Arrays.toString(arr)); }//平均9秒 //位移法 public static void shellSort2(int[] arr) { for(int gap = arr.length/2;gap > 0;gap /=2) { for(int i = gap;i
= 0 && temp < arr[j-gap]) { arr[j]=arr[j-gap];//把索引0的值8,移动到索引5的位置 j-=gap;//只需要比较一次,就需要确保执行一次;j=j-gap } arr[j]=temp;//把6移动到0的位置 } } //System.out.println(Arrays.toString(arr)); } } } //平均1秒

快速排序

快速排序是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后在按此方法对这两部分分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据都变成有序序列

package sort;import java.util.Arrays;public class QuickSort {    public static void main(String[] args) {        int[] arr = {-9,78,0,23,-567,70};        quickSort(arr,0,arr.length-1);        System.out.println(Arrays.toString(arr));    }    public static void quickSort(int[] arr,int left,int right) {        int l = left;//左下标        int r = right;//右下标        int temp;        int pivot = arr[(left+right)/2];//中下标        while(l < r) {            while(arr[l] < pivot) {                l +=1;            }            while(arr[r]>pivot) {                r -= 1;            }            if( 1 >= r) {                break;            }            temp = arr[l];            arr[l] = arr[r];            arr[r] = temp;                        if(arr[1]==pivot) {                r -= 1;            }                        if(arr[r] == pivot) {                l += 1;            }            if(l==r) {                 l +=1;                 r -=1;            }            if(left
1) { quickSort(arr,l,right); } } }}

转载于:https://www.cnblogs.com/train99999/p/11129701.html

你可能感兴趣的文章
No.026:Remove Duplicates from Sorted Array
查看>>
SpringBoot项目的几种创建方式,启动、和访问
查看>>
解决"disabled". Expected Boolean, got Number with value 0
查看>>
OC--init,initialize,initWithCoder:,initWithFrame:各方法的区别和加载顺序
查看>>
Exponentiation
查看>>
本地jar上传到本地仓库
查看>>
四则运算C++带Qt界面版本,吾王镇楼。。。。。
查看>>
安卓7.0手机拍照闪退问题解决
查看>>
ME525+ Defy+ 刷机指南[zz]
查看>>
支持触屏的jQuery轮播图插件
查看>>
差一点搞混了Transactional注解
查看>>
javascript基本函数
查看>>
前端公共库cdn服务推荐//提高加载速度/节省流量
查看>>
snprintf 返回值陷阱 重新封装
查看>>
asp.net GridView多行表头的实现,合并表头
查看>>
C#套打
查看>>
PolyCluster: Minimum Fragment Disagreement Clustering for Polyploid Phasing 多聚类:用于多倍体的最小碎片不一致聚类...
查看>>
【每日进步】July 2012
查看>>
327 作业
查看>>
sql 取汉字首字母
查看>>