时间:2021-05-19
排序算法常用的有冒泡排序,选择排序和插入排序,下面将用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、运行结果
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
一、概述: 本文给出常见的几种排序算法的原理以及Java实现,包括常见的简单排序和排序算法,以及其他常用的算法知识。简单排序:冒泡排序、选择排序、插入排序排序
java算法之快速排序实现代码摘要:常用算法之一的快速排序算法的java实现原理:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列
本文实例讲述了Java排序算法总结之希尔排序。分享给大家供大家参考。具体分析如下:前言:希尔排序(ShellSort)是插入排序的一种。是针对直接插入排序算法的
工具类简单明了地总结了java的快速排序,希尔排序,插入排序,堆排序,归并排序五种排序算法,代码中并没有对这几种排序算法的一个说明,关于思想部分希望在自行查阅相
本文实现了八个常用的排序算法:插入排序、冒泡排序、选择排序、希尔排序、快速排序、归并排序、堆排序和LST基数排序首先是EightAlgorithms.java文