当前位置:主页 > java教程 > 总结Java常用排序算法

Java常用排序算法整理分享

发布:2019-09-10 21:14:59 192


给网友朋友们带来一篇Java常用算法相关的编程文章,网友索宜人根据主题投稿了本篇教程内容,涉及到Java、排序算法、总结Java常用排序算法相关内容,已被644网友关注,涉猎到的知识点内容可以在下方电子书获得。

总结Java常用排序算法

排序算法常用的有冒泡排序,选择排序和插入排序,下面将用Java语言实现这三种排序方式,并且介绍一种由插入排序拓展出来的希尔排序。

1、冒泡排序(BubbleSort)是一种最简单的排序算法。它的基本思想是迭代地对输入序列的第一个元素到最后一个元素进行俩俩比较,当满足条件时交换这俩个元素的位置,该过程持续到不需要执行上述过程的条件时。

总结Java常用排序算法

2、我们自定义一个排序的函数为sorter(int[]array);

  private static void sorter(int[] array)     for(int i=0;i<array.length-1;i++) {      for(int j=0;j<array.length-i-1;j++) {        if(array[j]>array[j+1]) {          int temp = array[j];          array[j] = array[j+1];          array[j+1] = temp;        }      }    }  }

 

完整代码如下图:

总结Java常用排序算法

3、运行结果如下:

总结Java常用排序算法

1、选择排序

选择排序(SelectSort)是一种原地(in-place)排序算法,适用于小文件。选择排序是基于键值并且交换是发生在需要交换时才执行,所以选择排序常用于数值较大和键值较小文件。

总结Java常用排序算法

2、

private static void sorter(int[] array)     for(int i=0;i<array.length-1;i++) {      int index = i;      for(int j=index;j<array.length-1;j++) {        if(array[index]>array[j+1]) {          index = j+1;        }      }      int temp = array[index];      array[index] = array[i];      array[i] = temp;    }  }

  

总结Java常用排序算法

3、运行结果

总结Java常用排序算法

1、插入排序

插入排序(InsertionSort)是一种简单且有效的比较排序算法,在每次迭代过程中算法随机的从输入序列中移除一个元素,并将该元素插入到排序序列中正确的位置,重复该过程,知道所有元素都被选择一次。

总结Java常用排序算法

 

2、

 

private static void sorter(int[] array)     for(int i=1;i<array.length;i++) {      int temp = array[i];      int j = i;      while(j>0&&temp<array[j-1]) {        array[j] = array[j-1];        j--;      }      array[j] = temp;    }  }

总结Java常用排序算法

3、运行结果

总结Java常用排序算法

1、希尔排序

希尔排序(ShellSort)又称缩小增量排序,该算法是一个泛化的插入排序。

总结Java常用排序算法

2、

public static void sorter(int[]array) {    for(int gap=array.length/2;gap>0;gap/=2) {      for(int i=gap;i<array.length;i++) {        int temp = array[i];        int j = i;        if(array[j]<array[j-1]) {          while(j-gap>=0&&temp<array[j-gap]) {            array[j] = array[j-gap];            j-=gap;          }          array[j] = temp;        }      }    }  }

 

总结Java常用排序算法

3、运行结果

总结Java常用排序算法


参考资料

相关文章

  • java垃圾回收机制原理知识点详解

    发布:2019-06-06

    这篇文章主要为大家详细介绍了Java垃圾回收机制的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • java数组异常类型总结及用法

    发布:2021-08-25

    在本篇文章里小编给各位分享的是一篇关于java数组中的异常类型整理内容,有兴趣的朋友们可以学习下。


  • Java面向对象设计原则之迪米特法则介绍

    发布:2023-04-04

    迪米特法则解决类与类之间耦合度问题,如果类A调用了B类的某一个方法,则这两个类就形成了一种紧耦合的方式,当B类这个方法发生变化时,一定会影响A类的执行结果。迪米特法则要求每一个类尽可能少的与其他类发生关系


  • Javascript中封装window.open不兼容问题的处理方法

    发布:2020-02-02

    window.open不兼容,其实不是, 因为不能直接执行, 必须通过用户手动触发才行,下面有个实例,大家可以看看


  • java面试基础内容整理

    发布:2020-01-16

    这篇文章主要介绍了java基面试础知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下


  • 浅谈java线程状态与线程安全解析

    发布:2023-04-15

    本文主要介绍了浅谈java线程状态与线程安全解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • Java集合Stream流操作的基本使用教程分享

    发布:2023-03-26

    流操作并不会影响原来的集合,可以简单认为,流操作是把集合中的一个元素逐个复制放到一个首尾相接的流动的水槽中。这篇文章整理了Stream流操作的基本使用,需要的可以参考一下


  • 详解java 中Spring jsonp 跨域请求的实例

    详解java 中Spring jsonp 跨域请求的实例

    发布:2022-10-20

    为网友们分享了关于java的教程,这篇文章主要介绍了详解java 中Spring jsonp 跨域请求的实例的相关资料,jsonp 可用于解决主流浏览器的跨域数据访问的问题,需要的朋友可以参考下


网友讨论