隨機數以及希爾排序

2021-08-20 22:39:13 字數 721 閱讀 8404

希爾排序:簡單地說,希爾排序就是進行多次的插入排序,次數由增量決定(又稱縮小增量排序,最後增量減小到1)。適合元素多的情況。

一次插入排序是穩定的,不會改變相同元素的相對順序,但在不同的插入排序過程中,相同的元素可能在各自的插入排序中移動,最後其穩定性就會被打亂,所以希爾排序是不穩定的。

隨機數:

要產生[m,n]範圍內的隨機數num,可用:

int num=rand()%(n-m+1)+m;

其中的rand()%(n-m+1)+m。

或者說rand()%x+y所產生的隨機數在[y,x+y-1]這個區間。

#include#include#includevoid shellsort(int b,int count)

;//設定增量

int i,j,getset,temp,j2;

for(i=0;i<3;i++)

}/* printf("--------shellsort--------\n");按增量檢視插入排序是否正確

for(int n=0;n<20;n++)*/}

}int main()

shellsort(a,20);

printf("--------after--shellsort--------\n");

for(n=0;n<20;n++)

}

js生成 n,m 的隨機數 以及實際運用

math.ceil 向上取整。math.floor 向下取整。math.round 四捨五入。math.random 1.0 之間的乙個偽隨機數。包含0不包含1 比如0.8647578968666494 math.ceil math.random 10 獲取從1到10的隨機整數,取0的概率極小。ma...

lua如何產生隨機數,以及需要注意的問題

lua中的自帶函式庫中有兩個關於隨機數的函式,乙個是random,乙個是randomseed。random有兩個引數,用來設定隨機數的範圍,比如random 1,100 設定隨機數的範圍為1至100之間。random函式說明 this function is an inte ce to the ps...

選擇排序,插入排序以及希爾排序

首先,找到陣列中最小的那個元素 將它與陣列中的第乙個元素交換位置 在剩下的陣列中找到最小的元素,和陣列的第二個元素交換位置,如此迴圈往復 public class selection exch a,i,min 陣列兩個元素比較 private static boolean less comparab...