2008秋季-计算机软件基础-有序表合并 教材 P79, ex3

数组插入排序算法
本文介绍了一个简单的数组插入排序算法实现,该算法通过遍历数组并比较元素大小来完成排序任务。文章提供了一个C语言实现的例子,包括插入操作的详细流程,并展示了如何将一个数组按升序排列。
/*  Author: Eman Lee  */
/* 计算机软件基础 教材 P79, ex3 */
#include 
< stdio.h >
#include 
< stdlib.h >
int  insert( int  a[], int  arrayLength, int   * listLength, int  x)
{
  
int  i,j;
  
if ( * listLength + 1 == arrayLength)
        
return   0 ; /* fail */
  
for (i = 0 ;i <* listLength;i ++ )
  {
   
if (a[i] >= x) /* search successfully */
   {
    
for (j =* listLength;j > i;j -- )
       a[j]
= a[j - 1 ]; /* move */
    a[i]
= x;
    (
* listLength) ++ ;
    
return   1 ; /* success */
   }
  
  }
   (
* listLength) ++ ;
   a[i]
= x;
  
return   1 ; /* success */
}

void  show( int  a[], int  listLength)
{
 
int  i;
 
for (i = 0 ;i < listLength;i ++ )
     printf(
"  %d  " ,a[i]);
}

void  main()
{
    
int  a1[ 100 ] = { 1 , 3 , 5 , 7 , 9 };
    
int  a2[ 100 ] = { 0 , 2 , 4 , 6 , 8 , 10 };
    
int  listLength = 5 ;
    
int  listLength2 = 6 ;
    
int  i;
    
for (i = 0 ;i < listLength2;i ++ )
        insert(a1,
100 , & listLength,a2[i]);

    show(a1,listLength);
    getchar();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值