激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - java交換排序之奇偶排序實現方法

java交換排序之奇偶排序實現方法

2019-12-10 13:45Benjamin_whx JAVA教程

這篇文章主要介紹了java交換排序之奇偶排序實現方法,實例分析了奇偶排序的原理與具體實現技巧,非常具有實用價值,需要的朋友可以參考下

本文實例講述了java交換排序之奇偶排序實現方法。分享給大家供大家參考。具體如下:

奇偶排序,或奇偶換位排序,或磚排序,是一種相對簡單的排序算法,最初發明用于有本地互連的并行計算。這是與冒泡排序特點類似的一種比較排序。

該算法中,通過比較數組中相鄰的(奇-偶)位置數字對,如果該奇偶對是錯誤的順序(第一個大于第二個),則交換。下一步重復該操作,但針對所有的(偶-奇)位置數字對。如此交替進行下去。

處理器數組的排序

在并行計算排序中,每個處理器對應處理一個值,并僅有與左右鄰居的本地互連。所有處理器可同時與鄰居進行比較、交換操作,交替以奇-偶、偶-奇的順序。該算法由Habermann在1972年最初發表并展現了在并行處理上的效率。

該算法可以有效地延伸到每個處理器擁有多個值的情況。在Baudet–Stevenson奇偶合并分區算法中,每個處理器在每一步對自己所擁有的子數組進行排序,然后與鄰居執行合并分區或換位合并。

Batcher奇偶歸并排序

Batcher奇偶歸并排序是一種相關但更有效率的排序算法,采用比較-交換和完美-洗牌操作。

Batcher的方法在擁有廣泛互連的并行計算處理器上效率不錯。


最差時間復雜度 \Theta(n^2)

奇偶排序動態圖如下所示:

java交換排序之奇偶排序實現方法

代碼實現:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.baobaotao.test;
/**
 * 排序研究
 *
 */
public class Sort {
  /**
<span style="white-space:pre">  </span> * 奇偶排序
<span style="white-space:pre">  </span> * @param array
<span style="white-space:pre">  </span> */
  public static void batcherSort(int[] array) {
    int length = array.length ;
    boolean flag = true ;
    while(true) {
      flag = true ;
      for(int i=1;i<length-1;i+=2) {
        if(array[i] > array[i+1]) {
          swap(array, i, i+1) ;
          flag = false ;
        }
      }
      for(int i=0;i<length-1;i+=2) {
        if(array[i] > array[i+1]) {
          swap(array, i, i+1) ;
          flag = false ;
        }
      }
      if(flag) break ;
      printArr(array) ;
    }
  }
  /**
   * 按從小到大的順序交換數組
   * @param a 傳入的數組
   * @param b 傳入的要交換的數b
   * @param c 傳入的要交換的數c
   */
  public static void swap(int[] a, int b, int c) {
    int temp = 0 ;
    if(b < c) {
      if(a[b] > a[c]) {
        temp = a[b] ;
        a[b] = a[c] ;
        a[c] = temp ; 
      }
    }
  }
   
  /**
   * 打印數組
   * @param array
   */
  public static void printArr(int[] array) {
    for(int c : array) {
      System.out.print(c + " ");
    }
    System.out.println();
  }
   
  public static void main(String[] args) {
    int[] number={11,95,45,15,78,84,51,24,12} ;
    batcherSort(number) ;
  }
}

輸出分析:

?
1
2
3
4
11 45 15 95 51 78 12 84 24
11 15 45 51 12 95 24 78 84
11 15 12 45 24 51 78 95 84
11 12 15 24 45 51 78 84 95

希望本文所述對大家的java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
516
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 久色乳综合思思在线视频 | 99久久久精品国产一区二区 | 久久精品视频免费 | 午夜热门福利 | 海角在线观看91一区二区 | 狠狠搞视频 | 在线成人免费观看 | 黄色片视频在线观看 | 亚洲免费视 | 久久精品一区二区三 | 91精品国产综合久久久欧美 | 国产欧美日韩在线不卡第一页 | 日本在线不卡一区二区三区 | 91高清国产视频 | 92看片淫黄大片一级 | 亚洲欧洲日产v特级毛片 | 亚洲视频在线网 | 99精品视频一区二区三区 | av91肉丝一区二区电影 | 中国免费一级毛片 | 欧美第1页| 精品国产一区二区三区久久久蜜月 | 茄子福利视频 | 国产一级片 | 亚洲成人福利 | 久久人人人 | 91网址在线播放 | 精品国产视频一区二区三区 | 日韩欧美视频一区二区三区 | xnxx 日本免费 | 亚洲成人高清在线观看 | 中文成人在线 | 亚洲第一激情 | 91麻豆精品国产91久久久更新资源速度超快 | 免费毛片观看 | www成人在线观看 | 日韩精品久久久久久久电影99爱 | av电影免费在线看 | 国产另类一区 | 最新精品在线 | 撅高 自己扒开 调教 |