论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > C语言程序设计教程
Tag:新手,函数,指针,数据类型,对象,Turbo,入门,运算符,数组,结构,二级,,tc,游戏,试题,问答,编译,视频教程

C语言教程几种排序算法

文章类别:C语言程序设计 | 发表日期:2009-6-16 11:18:50

C语言教程:C语言几种排序算法

21视频教程网

/*对键盘输入的十个数从小到大排序*/
/*冒泡排序(buddle sort)*/
main()
{
int a[11];
int i,j,t;
clrscr();
printf("input 10 numbers :\n");
for(i=1;i<11;i++)
  scanf("%d",&a[i]);
  printf("\n");
  for(j=1;j<=9;j++)
    for(i=1;i<=10-j;i++)
    if(a[i]>a[i+1])
      {t=a[i];a[i]=a[i+1];a[i+1]=t;}
    printf("the sorted numbers:\n");
    for(i=1;i<11;i++)
    printf("%d ",a[i]);
    getch();
    }
/*选择排序(select sort)*/
main()
{
int i,j,a[10],t;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<=8;i++)
for(j=i;j<=8;j++)
{t=a[i];
 if(a[j]>a[j+1])
 {a[i]=a[j+1];
  a[j+1]=t;}
}
for(i=0;i<=9;i++)
printf("%d ",a[i]);
}
/*插入法排序*/
#define N 10
#include"stdio.h"
main()
{ int i,j,k,t,a[N];
clrscr();
printf("Please input %d numbers:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
 for(i=1;i<N;i++)
 {
  for(j=0;j<i;j++)
  {if(a[j]>a[i])
   {t=a[i];
    for(k=i;k>=j;k--)
    a[k]=a[k-1];
    a[j]=t;
   }
  }
 }
 printf("small to big order:\n");
 for(i=0;i<N;i++)
 printf("%-2d",a[i]);
 printf("\n");
 getch();
}
    

#include <stdio.h>
struct num
{
int date;
int n;
struct num *next;
};
main()
{
struct num *p1,*p2,*head,*p;
int i,k=0,date1,date2,kk;
head=NULL;
p1=p2=(struct num *)malloc(sizeof(struct num));
printf("enter num end with -999\n");
scanf("%d",&p1->date);
p1->n=k+1;
while (p1->date!=-999)
{
k++; if (k==1) head=p1;
p2->next=p1;p2=p1;
p1=(struct num *)malloc(sizeof(struct num));
scanf("%d",&p1->date);
p1->n=k+1;
}
p2->next=NULL;
kk=p2->date;


for (i=0;i<kk;i++)
{
p=head;
while(p->next!=NULL)
{
p1=p->next;
if (p1->date>p->date)
{
date1=p->date;
date2=p1->date;
p->date=date2;
p1->date=date1;
}
p=p->next;
}
}

printf("the order is:\n");
p=head;
while(p->next!=NULL)
{
printf("%d ",p->date) ;
p=p->next;
}
printf("%d ",p->date) ;
getch();
}
 

上面是一个对任意输入数的排序.
write by elva6401

主要思想也是冒泡排序,但用链表.

没有简洁一点的程序吗 ?也没有具体的要求你怎么编得怎么复杂啊!,不就是几种排序嘛?

你要简单是吧,好,不知道你能不能看懂,我乱写写,没试,你去试下,应该可以吧
int abc(int hehe)
{int d;
--aa&&abc(hehe);
for(i=0;i<10;i++)
}
if(hehe[i]<hehe[i+1])
{
d=hehe[i]+hehe{i+1];
hehe[i]=d-hehe[i];
hehe[i+1]=d-hehe[i];
endif
}
}
}
main()
int aa=10,hehe[10]
{for(m=0;m<10;m++)scanf("%",hehe);
printf("s",abc(hehe));
}
呵,我没在机子上试,估计差不多,你能看的懂么,会做还来这显。。。
有错帮指正!!
有问题也能提出,呵,刚玩玩游戏过来,头脑有点不清楚
 

 

视频教程列表
文章教程搜索
 
C语言程序设计推荐教程
C语言程序设计热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058