當前位置:編程學習大全網 - 編程軟體 - 用c#在vs2008編寫基數排序和希爾排序可視化編程

用c#在vs2008編寫基數排序和希爾排序可視化編程

/*算法思想:

1.控制shell增量值(最外層循環)

2.控制組數

3.進入組內循環:①當前元素a[j]的後壹個數為最小的值temp

②比較當前元素a[j]與最小的值temp:

如果temp小於a[j],就將a[j]後移,並且讓仿真指針前移,循環比較

③當最內層循環結束時,就找到了temp插入的位置

*/

void ShellSort2(DataType a[],int n,int d[],int D_length){

int i,j,m,span,temp,k;

for(m = 0; m < D_length; m++){

span = d[m];/*span表示shell增量值*/

for(k = 0; k < span; k++){//控制組數

for(i = k; i < n-span; i = i+span){//控制組內比較趟數

temp = a[i+span];//把當前元素的後壹個數用temp保存起來,

j = i;

while(temp <= a[j] && j > -1){//將temp看出是最小的值,與前面的值比較

a[j+span] = a[j];//前壹個數大於當前元素,直接覆蓋當前元素;即將大數往後挪

j = j - span;//並讓仿真指針向前移,繼續把當前值與其前面的元素進行比較

}

a[j+span] = temp;//將temp填充到空位

}

}

}

}

  • 上一篇:硬件描述語言verilog的特點有哪些
  • 下一篇:編寫算法,實現串的基本操作Replace(&S,T,V)。
  • copyright 2024編程學習大全網