总结Java常用排序算法

所属分类: 软件编程 / java 阅读数: 41
收藏 0 赞 0 分享

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

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

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;        }      }    }  }

完整代码如下图:

3、运行结果如下:

1、选择排序

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

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;    }  }

  

3、运行结果

1、插入排序

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

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;    }  }

3、运行结果

1、希尔排序

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

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;        }      }    }  }

3、运行结果

更多精彩内容其他人还在看

java实现背单词程序

这篇文章主要为大家详细介绍了java实现背单词程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

java实现单词查询小程序

这篇文章主要为大家详细介绍了java实现单词查询小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Java程序开发环境配置图文教程

这篇文章主要为大家详细介绍了Java程序开发环境配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解ssh框架原理及流程

在本文中小编给大家整理的是关于ssh框架原理及流程的相关知识点内容,有此需要的朋友们可以学习下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

详解springmvc常用5种注解

在本篇里我们给大家总结了关于springmvc常用5种注解相关知识点以及实例代码,需要的朋友们参考下。
收藏 0 赞 0 分享

Java实现弹窗效果的基本操作(2)

这篇文章主要为大家详细介绍了Java实现弹窗效果的基本操作第二篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

Spring Boot假死诊断实战记录

这篇文章主要给大家介绍了关于Spring Boot假死诊断的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Spring Boot具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

Java计时新姿势StopWatch详解

这篇文章主要介绍了Java计时新姿势StopWatch,最近公司来了个大佬,从他那里学到不少东西,其中一个就是计时的新姿势「StopWatch」,需要的朋友可以参考下
收藏 0 赞 0 分享

java实现点击按钮弹出新窗体功能

这篇文章主要为大家详细介绍了java实现点击按钮弹出新窗体功能,旧窗体不进行操作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享
查看更多