在限定時間複雜度on,空間複雜度o1條件下,對陣列排

2021-03-04 01:58:36 字數 2732 閱讀 3470

1樓:緣明思

不知道數字的總量嗎?

是否隊首隊尾指標相等,是則結束迴圈。

如果隊首小於0,則觀察隊尾。

隊尾大於0,則交換隊首隊尾。小於則,隊尾保留,向隊首移動1個比較直至可以交換。

等於0則

如果隊尾指標為下乙個隊首指標的位置,則只比較和交換。

否則,交換該元素和其下乙個元素。且不移動隊尾指標。

如果隊首大於0,則向隊尾移動1個繼續比較。

如果隊首等於0,

如果隊尾指標為下乙個隊首指標的位置,則只比較和交換。

否則,交換該元素和其下乙個元素。且不移動隊首指標。

由於0元素的存在和無法確定的陣列長度,導致我想出來的這個破東西的時間複雜度大概是n+n/2

好像還是算作n的。

2樓:匿名使用者

大神大聲的告訴我什麼排序方法的平均時間複雜度是o(n)?

如何對n個整數數進行排序,要求時間複雜度o(n),空間複雜度o(1)

3樓:等你愛我

題目:如何對n個不重複出現的整數序列進行排序,已知這些數的範圍為(0-65535),要求時間複雜度o(n),空間複雜度o(1)分析:可以申請乙個大小為65536的陣列a,陣列的x下標代表數字x,a[x]代表x 在整數序列中出現的次數。

掃瞄一遍整數序列就可以完成對該整數序列的排序,時間複雜度為o(n)應為已知範圍,申請大小為65536的陣列,大小為常量,所以空間複雜度為o(1)**:

4樓:迮蕊釗德潤

可以申請乙個大小為65536的陣列a,陣列的x下標代表數字x,a[x]代表x

在整數序列中出現的次數。掃瞄一遍整數序列就可以完成對該整數序列的排序,時間複雜度為o(n)

要求對陣列a進行排序,要求時間複雜度為o

5樓:盛道農業

先排序抄,複雜度為o(n log n),然後去重,也就是去掉相鄰的相同元素即可,複雜度o(n),故總的複雜度為則*a, *(a+1)到*(b-1)為無重的元素。sort和unique均為stl的演算法,標頭檔案algorithm。

6樓:匿名使用者

treeset的比較器排序

如何對n個整數數進行排序,要求時間複雜度o(n),空間複雜度o(1)

7樓:手機使用者

可以申請乙個大小為65536的陣列a,陣列的x下標代表數字x,a[x]代表x 在整數序列中出現的次數。掃瞄一遍整數序列就可以完成對該整數序列的排序,時間複雜度為o(n)

如何對n個數進行排序,要求時間複雜度o,空間複雜度o

8樓:mean有方法的

o什麼,要知道,排序理論最快時間複雜度只能是nlogn,不能再快,這是有證明的。想要提高速度用c++函式庫的qsort();

求滿足一下條件的演算法,時間複雜度為o(n)

9樓:滿天點點沃

對著自己的資料型別bai做相應地修改:

void delete(seqlist l, datatype x)l->length = i;

}void delete_list(linklist head, datatype x)

p = q->next;}}

2個遞增有序陣列的長度和為n.設計演算法合併為乙個遞增有序陣列.要求時間複雜度為o(n),空間複雜度為o(1). 100

10樓:高金山

再加200分!

合併後來放在源**?

假如放在第乙個陣列或第二個陣列裡面,那麼要保證這個陣列夠大!

假如放在第三個陣列裡,那麼,它不算在空間複雜度裡面裡。

因為它不是輔助空間,而是存放結果的空間。

其實,這是個很簡單的問題!!!

void main()

,a2[n2]=,a3[n]=;

int i1,i2,i;

for(i1=0,i2=0,i=0;i1

else }

if(i1

else }}

11樓:馨兒_青衣

假設2個陣列為a、b,把a的長度擴充到n,從b陣列的第乙個元素開始取值,然後跟a中的元素比較,插入到a陣列中合適的位置。

12樓:匿名使用者

我也想知道合併後放在**..

設計一演算法,刪除元素值在【x,y】間的所有元素,要求演算法時間複雜度為o(n),空間複雜度為o(1)

13樓:

什麼是刪除。。。你把那個元素打個標誌,說明他不能被使用不就行了麼。

譬如,所有的元素值有乙個範圍 。[a,b]。那你可以讓要刪除的元素是a-1,或者是b+1.

為啥氣泡排序的最優時間複雜度是o(n)不是o(1)啊?

14樓:匿名使用者

就是o(n),維基百科是對的~

初始時陣列中的數就已經排列完成了的話,還需要掃一遍陣列的,所以是o(n)~

不懂可問,滿意望採納謝謝!

演算法的空間複雜度,時間複雜度,有窮性分別是什麼意思

通俗來說 空間複雜度是指運算過程中佔用的記憶體和輸入的漸進關係。時間複雜度是指運算過程中使用的時間和輸入的漸進關係。有窮性是指在有限時間內可以結束運算。演算法的時間複雜度與空間複雜度各是什麼意思 是說明乙個程式根據其資料n的規模大小 所使用的大致時間和空間說白了 就是表示 如果隨著n的增長 時間或空...

關於時間複雜度的計算,如何計算時間複雜度?

給我十分,我告訴你答案。請問樓主答案,我也不會。如何計算時間複雜度?一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f n 因此,演算法的時間複雜度記做 t n o f n 隨著模組n的增大,演算法執行的時間的增長率和f n 的增長率成正比,所以f n 越小,演算法的時間複雜度越低,演...

c語言時間複雜度求解,C語言時間複雜度求解

1 兩層迴圈,每層bai 執行dun次,時間複雜度為o n 2 zhi 2 也是兩層迴圈dao 可以算出總共執行了回多少次,其答中n的最高次數為2,所以時間複雜度也為o n 2 3 同上,o n 2 4 迴圈體執行次數為n 1,時間複雜度為o n 5 三層迴圈,每層執行n次,時間複雜度為o n 3 ...