資料結構:遞增排列的陣列 union all 演算法 2.1
遞增排列的陣列 union all
假設有2個線性表,遞增排列的陣列,如
char a[20]="abbcopqtuwz";
char b[20]="bcfgjmtv";
我們需要實現一個union all,將兩個字串中的字元合併到
一個新的線性表c中,其中也是按照遞增排列的。
那麼按照我們要求輸出應該為
abbbccfgjmopqttuvwz
那麼演算法如下:
執行程式輸出為:abbbccfgjmopqttuvwz
假設有2個線性表,遞增排列的陣列,如
char a[20]="abbcopqtuwz";
char b[20]="bcfgjmtv";
我們需要實現一個union all,將兩個字串中的字元合併到
一個新的線性表c中,其中也是按照遞增排列的。
那麼按照我們要求輸出應該為
abbbccfgjmopqttuvwz
那麼演算法如下:
點選(此處)摺疊或開啟
-
#include<stdio.h>
-
#include <string.h>
-
-
-
int main(void)
-
{
-
char a[20]="abbcopqtuwz";
-
char b[20]="bcfgjmtv";
-
-
char c[30];
-
memset(c,0,30);
-
-
int n=0;
-
int m=0;
-
int h=0;
-
-
int a_len=strlen(a);
-
int b_len=strlen(b);
-
-
while(n<a_len && m<b_len)
-
{
-
if(a[n]< b[m])
-
{
-
c[h]=a[n];
-
n++;
-
}
-
else if(a[n]==b[m])
-
{
-
c[h]=a[n];
-
n++;
-
}
-
else
-
{
-
c[h]=b[m];
-
m++;
-
}
-
h++;
-
}
-
-
if(a[n] != 0)
-
{
-
while(n<a_len)
-
{
-
c[h]=a[n];
-
n++;
-
h++;
-
}
-
}
-
-
if(b[m] != 0 )
-
{
-
while(m<b_len)
-
{
-
c[h]=b[m];
-
m++;
-
h++;
-
}
-
}
-
-
-
printf("%s\n",c);
- }
可以看到和預期一模一樣。
分析這個演算法的漸進時間複雜度,實際上我們發現他只是一個單迴圈,很明顯我們原操作只是c[h]=a[n];這樣的複製
所以時間複雜度為:
T(n)=O(n)
但是這樣的演算法明顯依賴於兩個陣列排序好了的情況
分析這個演算法的漸進時間複雜度,實際上我們發現他只是一個單迴圈,很明顯我們原操作只是c[h]=a[n];這樣的複製
所以時間複雜度為:
T(n)=O(n)
但是這樣的演算法明顯依賴於兩個陣列排序好了的情況
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2124893/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料結構與演算法——陣列資料結構演算法陣列
- 【資料結構與演算法】——稀疏陣列資料結構演算法陣列
- 資料結構與演算法 | 陣列(Array)資料結構演算法陣列
- 資料結構 - 陣列資料結構陣列
- 資料結構-陣列資料結構陣列
- php對陣列進行全排列的非遞迴演算法PHP陣列遞迴演算法
- JavaScript 的資料結構和演算法 - 陣列篇JavaScript資料結構演算法陣列
- 資料結構與演算法——歸併排序: 陣列&連結串列&遞迴&非遞迴解法全家桶資料結構演算法排序陣列遞迴
- 資料結構與演算法—稀疏陣列和佇列資料結構演算法陣列佇列
- 資料結構與演算法學習-陣列資料結構演算法陣列
- TypeScript演算法與資料結構-陣列篇TypeScript演算法資料結構陣列
- 資料結構與演算法:稀疏陣列(一)資料結構演算法陣列
- 資料結構與演算法之稀疏陣列資料結構演算法陣列
- 資料結構之「陣列」資料結構陣列
- 資料結構之陣列資料結構陣列
- 資料結構2——陣列資料結構陣列
- Java資料結構-陣列Java資料結構陣列
- 2.1資料結構學習筆記--佇列資料結構筆記佇列
- 連結串列!比陣列更適合做增刪操作的資料結構陣列資料結構
- js資料結構與演算法 陣列、棧部分JS資料結構演算法陣列
- JavaScript資料結構和演算法簡述——陣列JavaScript資料結構演算法陣列
- 資料結構與演算法整理總結---陣列,連結串列資料結構演算法陣列
- Java版-資料結構-陣列Java資料結構陣列
- JavaScript資料結構01 - 陣列JavaScript資料結構陣列
- JS資料結構(一)——陣列JS資料結構陣列
- 資料結構——樹狀陣列資料結構陣列
- 【資料結構與演算法】字串匹配(字尾陣列)資料結構演算法字串匹配陣列
- Java版-資料結構-佇列(陣列佇列)Java資料結構佇列陣列
- 資料結構和演算法:遞迴資料結構演算法遞迴
- 資料結構與演算法:遞迴資料結構演算法遞迴
- 玩轉資料結構之陣列資料結構陣列
- js實現資料結構--陣列JS資料結構陣列
- 基礎資料結構之陣列資料結構陣列
- pyspark 解析kafka陣列結構資料SparkKafka陣列
- JavaScript資料結構之陣列棧佇列JavaScript資料結構陣列佇列
- 資料結構與演算法系列(一)陣列實現資料結構演算法陣列
- [資料結構]KMP演算法(含next陣列詳解)資料結構KMP演算法陣列
- sql_union all_列別名SQL