2008秋-计算机软件基础-直接插入排序

/*
Title:  直接插入排序
Author: eman lee
算法功能:实现将一个长度为n的线性表r上的所有元素按关键字升序排列。
*/
#include
<stdio.h>

void insertsort (int  r[] , int n)
{
  
/*r[0] is preserved, elements are stored in r[1] to r[n]*/
  
int  i,j;
  
for (i=2;i<=n;i++/*外循环控制排序的总趟数*/
    {
     r[
0]=r[i]; 
     j
=i-1;
     
while (r[0]<r[j])  /*在有序表中寻找插入位置*/
      {
        r[j
+1]=r[j];
        j
--;   
     } 
     r[j
+1]=r[0];  
    }
/*insersort*/

void show(int  r[] , int n)
{
/*elements are stored in r[1] to r[n]*/
 
int i;
 
for(i=1;i<=n;i++)
   printf(
" %d ",r[i]);
 printf(
"\n"); 
}

void main()
{
 
int a[9]={0,38,20,46,38,74,91,12,25};
 show(a,
8);
 insertsort(a,
8);
 show(a,
8);
}
posted @ 2007-10-16 23:17  emanlee  阅读(288)  评论(0编辑  收藏  举报