一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java實現合并兩個有序序列算法示例

Java實現合并兩個有序序列算法示例

2021-01-04 16:00軟貨 Java教程

這篇文章主要介紹了Java實現合并兩個有序序列算法,簡單描述了序列合并算法的原理與java合并有序序列的具體操作步驟及相關實現技巧,需要的朋友可以參考下

本文實例講述了Java實現合并兩個有序序列算法。分享給大家供大家參考,具體如下:

問題描述

輸入:序列A<a0,a1,a2,...aq,aq+1,aq+2,...,ar>,其中a0<a1<...<aq,aq+1<aq+2<...<ar
輸出:序列B<b0,b1,...,br>,其中b0<b1<...<br

算法思想

創建一個長度為r的數組R,將A中的序列看作是兩個有序序列
B=A<a0,a1,a2,...,aq>
C=A<aq+1,aq+2,...,ar>

分別從B和C中拿取一個數進行比較,將較小的放入R,如果這個數在B中,則繼續取B中下一個最小的數;如果在C中,同樣操作。所有數都在R中。
Ri=MIN(B)<=MIN(C)?MIN(B):MIN(C)

如果B或C沒有更多的數可以獲取,則將另一個序列的所有數填制R。

Ri=(MIN(B)MIN(C))

算法實現

?
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
/**
 *
 * @author Chuck
 *
 */
public class Merge {
  /**
   * 合并兩個有序序列
   * @param A 待合并序列
   * @param q 第二個序列開始數組下標
   * @return 合并后的新數組
   */
  public static int[] merge(int [] A,int q){
    //創建數組
    int n = A.length;
    int [] R = new int[n];
    int i = 0;
    int j = q+1;
    int k = 0;
    //如果兩個數組B 和 C中都有數據則選擇更小的加入到R中并獲取下一個
    while(i<=q&&j<=n-1){
      if(A[i]<=A[j]){
        R[k]=A[i];
        i++;
      }else{
        R[k]=A[j];
        j++;
      }
      k++;
    }
    //如果B中有數據則把所有數據加入到R中
    while(i<=q) R[k++] = A[i++];
    //如果C中有數據則把所有數據加入到R中
    while(j<n-1) R[k++] = A[j++];
    return R;
  }
  public static void main(String [] args){
    int [] A = {5,6,7,8,9,44,55,66,788,1,3,10,45,59,70,188};
    int q = 8;
    int [] R = Merge.merge(A, q);
    for(int i=0;i<R.length;i++){
      System.out.print(R[i] +" ");
    }
  }
}

算法時間

f(n)=q+1+r−q=r+1

這里的r是數組的輸入規模,所以算法最壞情形運行時間為:

f(n)=O(n)

演示結果

?
1
1 3 5 6 7 8 9 10 44 45 55 59 66 70 188 788

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

原文鏈接:http://blog.csdn.net/baidu_22502417/article/details/46638047

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男gay网站视频免费观看 | 99这里只有精品视频 | 欧美老人与小伙子性生交 | 日韩欧美精品一区二区 | 日韩性大片免费 | 欧美亚洲国产精品久久久 | 久久综合久久伊人 | freesex 18 19处xx | 极品91| 美女把小内内脱个精光打屁屁 | 国产麻豆视频 | 色综合久久天天综合 | 福利一区在线观看 | 精品国产福利一区二区在线 | 高清视频一区二区三区 | 91成人啪国产啪永久地址 | 奇米影视4444| 男人j放进女人的p视频免费 | 国产自在自线午夜精品之la | www射com| 国产精品免费_区二区三区观看 | 逼里逼里香 | 天堂网在线.www天堂在线视频 | 青草色视频 | 国产手机在线观看 | 免费观看成年肉动漫网站 | 人人爽人人香蕉 | 我和岳的性事小说 | 日韩亚洲国产激情在线观看 | 京东热dj6666 | 青青网在线视频 | 99久久中文字幕伊人 | beeg xxxx日本| 日韩精品视频在线观看免费 | 九九热视频免费 | 777午夜精品免费播放 | 出轨同学会2在线观看 | 唯美清纯 自拍偷 | 四虎影视在线看免费 720p | 校园情射 | 亚洲高清在线天堂精品 |