既然題目要求的是把負數放在陣列的前半部分,正數放在陣列的後半部分,因此所有的負數應該位於正數的前面。也就是說我們在掃瞄這個陣列的時候,如果發現有正數出現在負數的前面,我們可以交換他們的順序,交換之後就符合要求了。因此我們可以維護兩個指標,第乙個指標初始化為陣列的第乙個數字,它只向後移動;第二個指標初始化為陣列的最後乙個數字,它只向前移動。在兩個指標相遇之 前,第乙個指標總是位於第二個指標的前面。如果第乙個指標指向的數字是正而第二個指標指向的數字是負數,我們就交換這兩個數字。時間複雜度為o(n),空間複雜度為o(1).
#include
#include
using namespace std;
void fun2(int a,int n)
int low=0,high=n-1;
while(low0 && low
PHP如何將陣列中的負數全部變為正數
php將陣列中的負數全部變為正數的方法 首先新建php檔案,並宣告php與瀏覽器互動的檔案型別和編碼 然後定義乙個含有負數的陣列,並定義for迴圈遍歷陣列 接著使用函式 abs 將陣列中的元素變成正數 最後執行該網頁輸出陣列即可。php將陣列中的負數全部變為正數的方法 1 新建乙個252.php 2...
39 線性表中元素前面負數後面正數
已知線性表按順序儲存於記憶體,每個元素都是整數,用最少時間把所有值為負數的元素移到全部正數值元素前面的演算法。include using namespace std define n 5 設定線性表的閾值 typedef struct seqlist 定義乙個線性 順序表 void print se...
將陣列的數字複製並將負數改變成正數(彙編)
將10個數 有正數,有負數 全部轉換成正數指令 含義lea bx,x lea取x有效的位址給bx mov bx,offset x 將x的位址給bx,相當於lea bx,x,和第一條指令等價 or al,al al 與 al jns判斷不是不是負數 jnz判斷不是0 data segment x db...