- 相關(guān)推薦
希爾排序是什么
希爾排序(shell)是對(duì)插入排序的一個(gè)改裝,它每次排序把序列的元素按照某個(gè)增量分成幾個(gè)子序列,對(duì)這幾個(gè)子序列進(jìn)行插入排序,然后不斷的縮小增量擴(kuò)大每個(gè)子序列的元素?cái)?shù)量,直到增量為一的時(shí)候子序列就和原先的待排列序列一樣了,此時(shí)只需要做少量的比較和移動(dòng)就可以完成對(duì)序列的排序了.以下是小編為大家搜索整理的希爾排序是什么,希望能給大家?guī)?lái)幫助!更多精彩內(nèi)容請(qǐng)持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!
[cpp] view plaincopy
#include ;
void Shell_Sort(int a[], int n)
{
int h,i,j,temp;
for (h=n/2; h>0; h=h/2)
{
for (i=h; i
{
temp = a[i];
for (j=i-h; j>=0 && temp < a[j]; j-=h)
{
a[j+h] = a[j];
}
a[j+h] = temp;
}
}
}
int main(void)
{
int arr[]={1,5,2,4,3,8,6,7,9};
int count=sizeof(arr)/sizeof(int);
Shell_Sort(arr,count);
int k;
for(k=0;k
{
printf("%d",arr[k]);
}
return 0;
}
PHP版本
[php] view plaincopy
$arr=array(1,5,2,4,3,8,6,7,9);
print "排序前 ";
print_r($arr);
echo "
";
$arr=shell_sort($arr);
print "排序后 ";
print_r($arr);
function shell_sort($array)
{
$count = count($array);
for ($h=intval($count/2); $h>0; $h=intval($h/2))
{
for ($i=$h; $i<$count; $i++)
{
$temp = $array[$i];
for ($j=$i-$h; $j>=0 && $temp < $array[$j]; $j-=$h)
{
$array[$j+$h] = $array[$j];
}
$array[$j+$h] = $temp;
}
}
return $array;
}
?>
【希爾排序是什么】相關(guān)文章:
excel怎么排序07-26
java的常見排序方法08-31
C語(yǔ)言中使用快速排序算法對(duì)元素排序的實(shí)例06-20
PHP快速排序算法解析10-09
C語(yǔ)言的冒泡排序方法08-22
excel2010如何排序10-07
中班數(shù)學(xué)排序教案08-11
經(jīng)典c語(yǔ)言冒泡排序法08-08
PHP排序算法類講解07-18
c++快速排序詳解10-18