算法 - 排序 - 直接插入排序

None.gif void  lnsertSort(SeqList R)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
InBlock.gif    
// 对顺序表R中的记录R[1..n]按递增序进行插入排序
InBlock.gif
    int i,j;
InBlock.gif    
for(i = 2;i <= n;i++)    // 依次插入R[2],…,R[n]
InBlock.gif
        if(R[i].key<R[i-1].key)
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
// 若R[i].key大于等于有序区中所有的keys,则R[i]应在原有位置上
InBlock.gif
            R[temp] = R[i];
InBlock.gif            j 
= i - 1;
InBlock.gif            
do
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif
InBlock.gif                
// 从右向左在有序区R[1..i-1]中查找R[i]的插入位置
InBlock.gif
                R[j + 1= R[j]; // 将关键字大于R[i].key的记录后移
InBlock.gif
                j--;
ExpandedSubBlockEnd.gif            }
while(R[0].key < R[j].key); // 当R[i].key≥R[j].key时终止
InBlock.gif
            R[j + 1= R[temp]; // R[i]插入到正确的位置上
ExpandedSubBlockEnd.gif
        }
 // endif
ExpandedBlockEnd.gif
}
  //  InsertSort 
None.gif

None.gif
void  lnsertSort( int [] x)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {             
InBlock.gif    
int j,temp;
InBlock.gif    
for(int i = 1; i < x.Length; i++// 依次插入x[1],…,x[n-1]
InBlock.gif
        if(x[i] < x[i - 1])
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{                    
InBlock.gif            temp 
= x[i];
InBlock.gif            j 
= i - 1;
InBlock.gif            
do
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{                         
InBlock.gif                x[j 
+ 1= x[j]; 
InBlock.gif                j
--;
ExpandedSubBlockEnd.gif            }
while(temp < x[j]); 
InBlock.gif            x[j 
+ 1= temp; 
ExpandedSubBlockEnd.gif        }
 // endif
ExpandedBlockEnd.gif
}
  //  InsertSort 

转载于:https://www.cnblogs.com/xiaodi/archive/2005/12/13/296509.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值