8.2插入排序

#include "stdafx.h"
#include 
<iostream.h>
#include 
<malloc.h>

int const count=10;

typedef 
struct 
{
    
int key;
}
records;

typedef records list[count
+1];

void straightsort(list & r)
{
    
for(int i=2;i<=count;i++)
    
{
        r[
0].key=r[i].key;
        
int j=i-1;
        
while(r[0].key<r[j].key)
        
{
            r[j
+1].key=r[j].key;
            j
--;
        }

        r[j
+1].key=r[0].key;
    }

}


void printList(list r)
{
    
for(int i=0;i<count;i++)
    
{
        
if (i==0)
        
{
            cout
<<r[i+1].key;
        }

        
else
        
{
            cout
<<","<<r[i+1].key;
        }

    }

    cout
<<endl;
}


int main(int argc, char* argv[])
{
    list r;
    
for(int i=0;i<count;i++)
    
{
        cout
<<"输入第"<<i+1<<"个主键";
        cin
>>r[i+1].key;
    }

    cout
<<"输入的序列为:"<<endl;
    printList(r);
    straightsort(r);
    cout
<<"插入排序后的序列为:"<<endl;
    printList(r);
    
return 0;
}

    
posted @ 2007-08-07 10:14  吴东雷  阅读(274)  评论(0编辑  收藏  举报