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

java數(shù)據(jù)結(jié)構(gòu)與算法之奇偶排序算法完整示例

 更新時(shí)間:2016年08月09日 11:21:54   作者:modun  
這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之奇偶排序算法,較為詳細(xì)的分析了奇偶算法的原理并結(jié)合完整示例形式給出了實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了java數(shù)據(jù)結(jié)構(gòu)與算法之奇偶排序算法。分享給大家供大家參考,具體如下:

算法思想:

基本思路是奇數(shù)列排一趟序,偶數(shù)列排一趟序,再奇數(shù)排,再偶數(shù)排,直到全部有序

舉例吧,

待排數(shù)組[6 2 4 1 5 9]

第一次比較奇數(shù)列,奇數(shù)列與它的鄰居偶數(shù)列比較,如6和2比,4和1比,5和9比

[6 2 4 1 5 9]

交換后變成

[2 6 1 4 5 9]

 第二次比較偶數(shù)列,即6和1比,5和5比

[2 6 1 4 5 9]

交換后變成

[2 1 6 4 5 9]

 第三趟又是奇數(shù)列,選擇的是2,6,5分別與它們的鄰居列比較

[2 1 6 4 5 9]

交換后

[1 2 4 6 5 9]

 第四趟偶數(shù)列

[1 2 4 6 5 9]

一次交換

[1 2 4 5 6 9]

具體代碼:

public class Main {
  /**
   * @param args the command line arguments
   */
  public static void main(String[] args) {
    int[] numbers = new int[]{12,33,45,33,13,55,34,7,6};
    Main.oddEventSort(numbers);
    for(int i=0; i<numbers.length; i++){
      System.out.print(numbers[i]+" ");
    }
  }
  private static void oddEventSort(int[] numbers){
    int temp;
    for(int i=numbers.length-1; i>numbers.length/2-1; i--){
      for(int j=1; j<=i; j+=2){
        if(j==numbers.length-1)break;
        if(numbers[j]>numbers[j+1]){
          temp = numbers[j];
          numbers[j] = numbers[j+1];
          numbers[j+1] = temp;
        }
      }
      for(int j=0; j<=i; j+=2){
        if(j==numbers.length-1)break;
        if(numbers[j]>numbers[j+1]){
          temp = numbers[j];
          numbers[j] = numbers[j+1];
          numbers[j+1] = temp;
        }
      }
    }
  }
}

PS:據(jù)說在多核時(shí)代這個(gè)算法比較好用

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java Lambda 表達(dá)式詳解及示例代碼

    Java Lambda 表達(dá)式詳解及示例代碼

    本文主要介紹Java Lambda 表達(dá)式的知識,這里整理了相關(guān)資料,JavaLambda 是Java8 引入的新功能,有興趣的小伙伴可以參考下
    2016-09-09
  • 一篇文章教你如何在SpringCloud項(xiàng)目中使用OpenFeign

    一篇文章教你如何在SpringCloud項(xiàng)目中使用OpenFeign

    這篇文章主要介紹了SpringCloud 使用Open feign 優(yōu)化詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-08-08
  • springboot如何使用yml文件方式配置shardingsphere

    springboot如何使用yml文件方式配置shardingsphere

    這篇文章主要介紹了springboot如何使用yml文件方式配置shardingsphere問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java訪問者模式實(shí)現(xiàn)優(yōu)雅的對象結(jié)構(gòu)處理

    Java訪問者模式實(shí)現(xiàn)優(yōu)雅的對象結(jié)構(gòu)處理

    Java訪問者模式是一種行為型設(shè)計(jì)模式,它通過將數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)操作分離,實(shí)現(xiàn)對復(fù)雜對象結(jié)構(gòu)的處理。它將數(shù)據(jù)結(jié)構(gòu)中的每個(gè)元素都轉(zhuǎn)換為訪問者能夠識別的形式,從而使得數(shù)據(jù)操作可以在不影響數(shù)據(jù)結(jié)構(gòu)的前提下進(jìn)行擴(kuò)展和變化
    2023-04-04
  • 基于java中cookie和session的比較

    基于java中cookie和session的比較

    下面小編就為大家?guī)硪黄趈ava中cookie和session的比較。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • springboot redis使用lettuce配置多數(shù)據(jù)源的實(shí)現(xiàn)

    springboot redis使用lettuce配置多數(shù)據(jù)源的實(shí)現(xiàn)

    這篇文章主要介紹了springboot redis使用lettuce配置多數(shù)據(jù)源的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Spring與Shiro整合及加載權(quán)限表達(dá)式問題

    Spring與Shiro整合及加載權(quán)限表達(dá)式問題

    這篇文章主要介紹了Spring與Shiro整合及加載權(quán)限表達(dá)式問題,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Springboot容器級后置處理器BeanDefinitionRegistryPostProcessor

    Springboot容器級后置處理器BeanDefinitionRegistryPostProcessor

    這篇文章主要介紹了Springboot容器級后置處理器BeanDefinitionRegistryPostProcessor,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • dubbo服務(wù)注冊到nacos的過程剖析

    dubbo服務(wù)注冊到nacos的過程剖析

    這篇文章主要為大家介紹了dubbo服務(wù)注冊到nacos的過程剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職極限
    2022-02-02
  • 消息隊(duì)列-kafka消費(fèi)異常問題

    消息隊(duì)列-kafka消費(fèi)異常問題

    這篇文章主要給大家介紹了關(guān)于kafka的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07

最新評論