C语言实现插入排序-输入-输出-排序3个函数

上一篇 / 下一篇  2010-11-03 19:58:13

#include<ctype.h>
#include<stdio.h>

//插入元素
void insert(int a[],int n)
{
 int i;
 printf("Pelase into a number:\n");
 for(i=0;i<n;i++)
 {
  scanf("%d",a+i);
 }
}

//排序
void sort(int array[],int n)
{
 int i,j;
 int temp;
 for(i=1;i<n;i++)
 {
  temp=array[i];
  for(j=i;j>0&&temp<array[j-1];j--)
  {
   array[j]=array[j-1];
  }
   array[j]=temp;
 }
}
//输出元素
void prt(int a[],int n)
{
 int i;
 for(i=0;i<n;i++)
 {
  printf("%3d",a[i]);
 }
 putchar('\n');
}

int main()
{
 int a[9];
 insert(a,9);
 sort(a,9);
 prt(a,9);
 return 0;
 
}

------------------------------------

# include<stdio.h>

int lt(int m,int n)
{
 if(m>n)
 {
  return -1;
 }
 else
 {
  return 1;
 }
}

void insert(int p[],int elem)
{
 int i,j;

 for(i=2;i<elem;i++)
 {
  if(lt(p[i],p[i-1]))
  {
   p[0]=p[i];
  for(j=i-1;p[0]<p[j];j--)
  {
   p[j+1]=p[j];
  }
     p[j+1]=p[0];
  }

 }
}


int main()
{
 int a[10]={100,8,4,5,9,7,6,1,2,3};//100是哨兵元素不用输出
 int i;
 //直接插入排序;
 insert(a,10);
 printf("排序:\n");
 for(i=1;i<10;i++)
 {
  printf("%3d",a[i]);
 }
 return 0;
}

 


 


TAG:

 

评分:0

我来说两句

日历

« 2024-05-06  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 18140
  • 日志数: 29
  • 建立时间: 2010-09-25
  • 更新时间: 2010-12-19

RSS订阅

Open Toolbar