国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

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

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - java交換排序之奇偶排序?qū)崿F(xiàn)方法

java交換排序之奇偶排序?qū)崿F(xiàn)方法

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

這篇文章主要介紹了java交換排序之奇偶排序?qū)崿F(xiàn)方法,實(shí)例分析了奇偶排序的原理與具體實(shí)現(xiàn)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了java交換排序之奇偶排序?qū)崿F(xiàn)方法。分享給大家供大家參考。具體如下:

奇偶排序,或奇偶換位排序,或磚排序,是一種相對(duì)簡(jiǎn)單的排序算法,最初發(fā)明用于有本地互連的并行計(jì)算。這是與冒泡排序特點(diǎn)類(lèi)似的一種比較排序。

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

處理器數(shù)組的排序

在并行計(jì)算排序中,每個(gè)處理器對(duì)應(yīng)處理一個(gè)值,并僅有與左右鄰居的本地互連。所有處理器可同時(shí)與鄰居進(jìn)行比較、交換操作,交替以奇-偶、偶-奇的順序。該算法由Habermann在1972年最初發(fā)表并展現(xiàn)了在并行處理上的效率。

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

Batcher奇偶?xì)w并排序

Batcher奇偶?xì)w并排序是一種相關(guān)但更有效率的排序算法,采用比較-交換和完美-洗牌操作。

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


最差時(shí)間復(fù)雜度 \Theta(n^2)

奇偶排序動(dòng)態(tài)圖如下所示:

java交換排序之奇偶排序?qū)崿F(xiàn)方法

代碼實(shí)現(xiàn):

?
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) ;
    }
  }
  /**
   * 按從小到大的順序交換數(shù)組
   * @param a 傳入的數(shù)組
   * @param b 傳入的要交換的數(shù)b
   * @param c 傳入的要交換的數(shù)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 ; 
      }
    }
  }
   
  /**
   * 打印數(shù)組
   * @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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲综合一二区 | 蜜臀精品久久久久久蜜臀 | 天堂中文| 国产精品剧情一区二区三区 | 国产一区美女视频 | 久久精品2 | 久久久久国产一级毛片高清片 | 成人免费视频网站在线观看 | 亚洲三级在线免费观看 | 国产黄色播放 | 国产精品欧美一区二区三区 | 亚洲男人av| 青春草国产免费福利视频一区 | 麻豆国产尤物av尤物在线观看 | 国产狂做受xxxxx高潮 | 中文字幕在线观看免费 | 亚洲社区在线 | 亚洲 欧美 另类 综合 偷拍 | 91国内外精品自在线播放 | 日本不卡一区二区三区在线观看 | 精品视频网 | 奇米在线视频 | 欧美精品成人 | 欧美在线观看免费观看视频 | 欧美精品在线视频 | 中文字幕一区二区三区日韩精品 | 在线免费观看黄 | av大片| 操操网站 | 亚洲欧美在线精品 | 日韩中文字幕在线观看 | 久久综合久久综合久久综合 | 亚洲天堂一区 | 精品久久久久久久久久久 | 精品久久久久国产 | 亚洲一区视频在线 | 亚洲精品无 | 青青草精品 | 欧美婷婷| 我要看日本黄色小视频 | 久久a视频 |