把某個數字放到最後面解法以及快排

2021-09-14 07:26:32 字數 1889 閱讀 4917

把陣列中的某個數字移到陣列最後面,比如[1, 7, 0, 2, 7, 0, 4, 5]中,把7往後挪,結果為[ 1, 0, 2, 0, 4, 5, 7, 7 ]

利用乙個count計數,看碰到了幾個x。如果碰到的數不是x,那麼就把這個數往前挪count個單位,即

arr[i - count] = arr[i];,相等count++

下面這張圖是整個移動過程:移動所有0,zeros用來統計碰到有多少個0。

* 所有相同數字後移——假設現在數字為x

//根據這個思想,寫了下面這個**,假設指定數字是x

function

backshift

(arr, x)

else

}//把最後j指向位置一直到陣列最後寫成x

while

(j < len)

console.

log(arr);}

backshift([

1,7,

0,2,

7,0,

4,5]

,7);

然而、大佬的**是這樣的:

//第二種思想的第二種寫法

function

backshift2

(arr, x)

}while

(j < len)

console.

log(arr);}

backshift2([

1,7,

0,2,

7,0,

4,5]

,7);

/*

快速排序:小於基準k的放左邊,大於k的放右邊

這樣跟上面的思想是一樣的。然後用上面這種方式做,稍微改一下

第一段:小於x的;

第二段:大於x的;

第三段: 沒有訪問的;

*/function

partition

(arr,l,

r)}//把鍵值放到j的位置

[arr[r]

, arr[j]]=

[arr[j]

, arr[r]

];return j;

}function

quicksort

(arr,l,

r, str)

}var arr =[7

,3,5

,2,1

,8];

quicksort

(arr,0,

5);console.

log(arr)

;

把boolean 引數放到最後面

每當我看到乙個方法呼叫如下 enum.tryparse stringrepresentationofenum,true,out enumvalue 我就會想這個 true 引數代表的是什麼意思呢。在這個例子中,基於我過去的經驗我知道在這個方法中它代表的是ignorecase 引數。但是,如果這是乙個...

總是把事情拖到最後?教你如何改善自己的拖延症

現實中,都喜歡把自己要做的事情拖到最後再去做,最後導致自己慌忙完成自己的任務,或者導致最後自己的任務無法完成,今天我將結合自己的實際經驗分享幾個如何改善自制力,拒絕拖延症的辦法。拒絕拖延,改變自己的拖延心理 想要改變自己的行為,首先要改變自己的心理,所以我們要警覺如下的拖延心理。等到八點鐘,我就要去...

判讀40億數字中是否有某個數字

網上大部分是使用的bitmap演算法。大體思路是 乙個位元組 byte 在計算機中佔8位 bit 每個位 bit 可以表示乙個數字,1表示含有,0表示不含有。1個32位系統的int型別可以儲存2的32次方個bit位,大約是42億多點。這樣40億需要 40 8 5億位元組,1m 1024kb 1024...