每日一題 合併排序

2021-09-29 06:58:17 字數 1119 閱讀 1002

title: 每日一題–合併排序

date: 2019-11-02 23:53:02

tags:

73.合併排序 (10分)

c時間限制:3000 毫秒 | c記憶體限制:3000 kb

題目內容:

使用合併排序演算法,對輸入的n個資料進行按公升序排序。

輸入描述

分兩行,第一行是整數n,第二行是n個整數,每個整數之間用空格間隔。

輸出描述

按公升序排序的n個整數

輸入樣例

89 8 7 6 5 4 3 2

輸出樣例

2 3 4 5 6 7 8 9

#include

int n, a[

100]

;//合併

void

fun02

(int m,

int n,

int tmp)

else

}//將剩下的強者全部加入陣列

while

(i <= tmp)

while

(j <= n)

//將排好序的陣列填入初始陣列

k =0;

for(

int pos = m; pos <= n; pos++)}

void

fun01

(int m,

int n)

//一分為二

int tmp =

(n + m)/2

;//先排左邊

fun01

(m, tmp)

;//再排右邊

fun01

(tmp +

1, n)

;//合併排好序的陣列

fun02

(m, n, tmp);}

intmain()

fun01(0

, n -1)

;for

(int i =

0; i < n; i++

)return0;

}

基礎演算法,一定得熟記於心,順手拈來。

LeetCode 每日一題 合併排序的陣列

給定兩個排序後的陣列 a 和 b,其中 a 的末端有足夠的緩衝空間容納 b。編寫乙個方法,將 b 合併入 a 並排序。初始化 a 和 b 的元素數量分別為 m 和 n。示例 輸入 a 1,2,3,0,0,0 m 3 b 2,5,6 n 3 輸出 1,2,2,3,5,6 看到這個題,我們的第一反應是讓...

合併排序的陣列 leetcode每日一題

這道題並不難,或許每個人都能想到直接賦值給a,然後再排序就完了。然後我刷這道題學到了這種雙指標的做法。1.乙個指標t1指向a的最後乙個數 3 乙個指標t2指向b的最後乙個數 6 2.如果t1 t2,就把t1插到 t1 t2 1 的位置然後指標t1向前移動一格 反之,就把t2插到 t1 t2 1 的位...

每日一題 歸併排序

第一次寫部落格,大佬們輕點噴 注 作為乙個計算機專業的本科生,每日做題也都是必不可少的,這個系列裡會更新一些我平時做的一些題目,大都比較簡單,不少題目在其他部落格裡也可以找到,我撰寫這些部落格僅用於記錄。這是一道比較簡單的資料結構的題目,先來看題 本題要求實現二路歸併排序中的歸併操作,待排序列的長度...