資料結構之兩條有序順序表的中位數查詢(方法介紹)

2022-09-05 21:48:19 字數 443 閱讀 9986

在學習資料結構時遇到一種玄而又玄的方法,這種方法似乎可以按著某種規律去理解,但是又摸不著他的最深層的原理。

題目描述:

有一條順序表a,他的中位數是5即為位置是 (長度l/2)+1,當長度為偶數的時候則直接為l/2。

而要求是給兩條有序的順序順序表找出其中的中位數(及兩個表中所有數的中位數)

解題方法:

一、當然,無論什麼問題都有笨方法,可以將兩個陣列合併然後直接根據陣列下標求出中位數,但是其浪費了大量的儲存空間。

故不採取。

二、重點講這種方法。

分別求出兩個線性表的的中位數分別為   a,b,當兩個中位數相等時直接退出

當a>b時,則將a所在的線性表中數較大的那一半去掉,然後將b在的線性表中數較小的那一半去掉,再各自求剩下數的中位數;  

當a依次重複上述三個步驟直到只剩下兩個數則取其中較小的那個為兩個順序表的中位數。

順序表應用5 有序順序表歸併(資料結構)

time limit 100 ms memory limit 880 kib submit statistic problem description 已知順序表a與b是兩個有序的順序表,其中存放的資料元素皆為普通整型,將a與b表歸併為c表,要求c表包含了a b表裡所有元素,並且c表仍然保持有序。i...

資料結構之順序表

首先是標頭檔案seqlist.h ifndef seqlist h define seqlist h include includeusing namespace std define elemtype int define seqlist default size 10 typedef struc...

資料結構之順序表

順序表的思想容易了解,但是 不容易掌握,我這裡根據老師所提供的 進行一下簡單的總結 這個 包含順序表的查詢,插入,刪除,建表,輸出資料 includeusing namespace std define ok 1 define error 0 define overflow 2 typedef in...