C#实现希尔排序算法

public class ShellSorter    
{    
    
public void Sort(int[] arr)    
    {    
        
int inc;    
        
for (inc = 1; inc <= arr.Length / 9; inc = 3 * inc + 1) ;    
        
for (; inc > 0; inc /= 3)    
        {    
            
for (int i = inc + 1; i <= arr.Length; i += inc)    
            {    
                
int t = arr[i - 1];    
                
int j = i;    
                
while ((j > inc) && (arr[j - inc - 1> t))    
                {    
                    arr[j 
- 1= arr[j - inc - 1];//交换数据    
                    j -= inc;    
                }    
                arr[j 
- 1= t;    
            }    
        }    
    } 
  
}  

kirayamto -
共有0个回答