欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

總結(jié)Java常用排序算法

 更新時間:2019年03月01日 10:44:19   投稿:laozhang  
在本文里我們給大家整理了關(guān)于Java常用排序算法以及實例代碼分析,需要的朋友們跟著學(xué)習(xí)下。

排序算法常用的有冒泡排序,選擇排序和插入排序,下面將用Java語言實現(xiàn)這三種排序方式,并且介紹一種由插入排序拓展出來的希爾排序。

1、冒泡排序(BubbleSort)是一種最簡單的排序算法。它的基本思想是迭代地對輸入序列的第一個元素到最后一個元素進行倆倆比較,當(dāng)滿足條件時交換這倆個元素的位置,該過程持續(xù)到不需要執(zhí)行上述過程的條件時。

2、我們自定義一個排序的函數(shù)為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、運行結(jié)果如下:

1、選擇排序

選擇排序(SelectSort)是一種原地(in-place)排序算法,適用于小文件。選擇排序是基于鍵值并且交換是發(fā)生在需要交換時才執(zhí)行,所以選擇排序常用于數(shù)值較大和鍵值較小文件。

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、運行結(jié)果

1、插入排序

插入排序(InsertionSort)是一種簡單且有效的比較排序算法,在每次迭代過程中算法隨機的從輸入序列中移除一個元素,并將該元素插入到排序序列中正確的位置,重復(fù)該過程,知道所有元素都被選擇一次。

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、運行結(jié)果

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、運行結(jié)果

相關(guān)文章

  • 解析JDK14中的java tools簡介

    解析JDK14中的java tools簡介

    這篇文章主要介紹了JDK14中的java tools簡介,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot ThreadLocal 簡單介紹及使用詳解

    SpringBoot ThreadLocal 簡單介紹及使用詳解

    ThreadLocal 叫做線程變量,意思是 ThreadLocal 中填充的變量屬于當(dāng)前線程,該變量對其他線程而言是隔離的,也就是說該變量是當(dāng)前線程獨有的變量,這篇文章主要介紹了SpringBoot ThreadLocal 的詳解,需要的朋友可以參考下
    2024-01-01
  • Java8的Lambda表達式你真的會嗎

    Java8的Lambda表達式你真的會嗎

    這篇文章主要介紹了Java8的Lambda表達式你真的會嗎,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • maven中resource配置的實現(xiàn)示例

    maven中resource配置的實現(xiàn)示例

    我們在使用Maven組件來構(gòu)建項目的時候,通常將配置文件放在資源文件目錄下,本文主要介紹了maven中resource配置的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • 詳解如何使用Java編寫圖形化的窗口

    詳解如何使用Java編寫圖形化的窗口

    這篇文章主要介紹了如何使用Java編寫圖形化的窗口,是Java的本地GUI軟件開發(fā)的基礎(chǔ),需要的朋友可以參考下
    2015-10-10
  • 劍指Offer之Java算法習(xí)題精講數(shù)組與字符串

    劍指Offer之Java算法習(xí)題精講數(shù)組與字符串

    跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質(zhì)的變化
    2022-03-03
  • java中添加按鈕并添加響應(yīng)事件的方法(推薦)

    java中添加按鈕并添加響應(yīng)事件的方法(推薦)

    下面小編就為大家?guī)硪黄猨ava中添加按鈕并添加響應(yīng)事件的方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • java實現(xiàn)分布式項目搭建的方法

    java實現(xiàn)分布式項目搭建的方法

    這篇文章主要介紹了java實現(xiàn)分布式項目搭建的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • 解決spring boot 1.5.4 配置多數(shù)據(jù)源的問題

    解決spring boot 1.5.4 配置多數(shù)據(jù)源的問題

    下面小編就為大家?guī)硪黄鉀Qspring boot 1.5.4 配置多數(shù)據(jù)源的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • 教你如何用好 Java 中的枚舉

    教你如何用好 Java 中的枚舉

    在本文中,我們將看到什么是 Java 枚舉,它們解決了哪些問題以及如何在實踐中使用 Java 枚舉實現(xiàn)一些設(shè)計模式。下面小編將為大家詳細介紹
    2021-09-09

最新評論