美文网首页
Java算法之排序

Java算法之排序

作者: 秋波未央 | 来源:发表于2019-12-12 12:04 被阅读0次

暂时整理了直接插入排序、冒泡和希尔

不说废话,直接上代码!

package paiXu;

public class Jihe {

//直接插入排序

public static void insertSort(int[] array){

int len=array.length;//数据长度

if(array!=null){

for(int i=1;i<len;i++){

int temp=array[i];//存放即将要插入的数据

int j=i;

if(array[j-1]>temp){//将temp从后往前依此比较

while(j>=1&&array[j-1]>temp){//temp大于最后一个数时

array[j]=array[j-1];//

j--;

}

}

array[j]=temp;

}

}

}

//冒泡排序

public static void bubbleSort(int[] a){

int len=a.length;//数组长度

int temp;//辅助

for(int i=len-1;i>=0;i--){

for(int j=0;j<i;j++){//从前往后依次比较

if(a[j]>a[j+1]){//前一个比后一个大,就进行交换

temp=a[j+1];

a[j+1]=a[j];

a[j]=temp;

}

}

}

    }

//希尔排序

public static void shellSort(int[] a){

int len=a.length;//数组长度

int temp;//辅助空间

int i,j,h;

for(h=len/2;h>0;h=h/2){//h表示步长,从len/2一直变化到1

for(i=h;i<len;i++){//按步长组组数,对每个组进行排序

temp=a[i];

for(j=i-h;j>=0;j=j-h){//每趟排序,根据步长将待排序列分成若干个子序列

if(temp<a[j]){

a[j+h]=a[j];

}else{

break;

}

}

a[j+h]=temp;

}

}

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int[] array={5,4,3,7,6,8,10,1};

System.out.println("原数组:");

for(int a1:array){

System.out.print(a1+" ");

}

System.out.println();

insertSort(array);

System.out.println("插入排序后:");

for(int a1:array){

System.out.print(a1+" ");

}

System.out.println();

bubbleSort(array);

System.out.println("冒泡排序后:");

for(int a1:array){

System.out.print(a1+" ");

}

System.out.println();

shellSort(array);

System.out.println("希尔排序后:");

for(int a1:array){

System.out.print(a1+" ");

}

}

}

相关文章

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • 经典排序算法总结

    经典排序算法集锦 冒泡法 排序算法入门之冒泡排序 排序算法入门之冒泡排序优化

  • 排序算法(四) 希尔排序(插入排序的进化)

    参考Java排序算法(四):希尔排序常见排序算法 - 希尔排序 (Shell Sort) 希尔排序算法是按其设计者...

  • java 实现排序算法之「插入排序」

    java 实现排序算法系列 这是 Java 实现排序算法的第三篇文章——插入排序算法。插入排序可以说成是「一类」简...

  • java排序方法资料

    java排序,效率高的是哪种排序方法 JAVA快速排序(高效) java中常用的几种排序算法 相关代码: /* *...

  • 排序算法-堆排序

    参考: Java排序算法(五):堆排序 【算法与数据结构】图说堆排序 【数据结构】排序算法:希尔、归并、快速、堆排...

  • 排序

    八大排序算法 一、归并排序 递归及非递归的JAVA实现 二、快速排序 快排算法JAVA实现 三、堆排序 堆排序堆排...

  • 一文搞定十大经典排序算法(Java实现)

    本文总结十大经典排序算法及变形,并提供Java实现。参考文章:十大经典排序算法总结(Java语言实现)快速排序算法...

  • Java常用排序算法/程序员必须掌握的8大排序算法

    Java常用排序算法/程序员必须掌握的8大排序算法

  • 排序算法

    常见排序算法比较 参考资料:各种排序算法比较 参考资料:快速排序算法 必须知道的八大种排序算法【java实现】(一...

网友评论

      本文标题:Java算法之排序

      本文链接:https://www.haomeiwen.com/subject/dbazgctx.html