189 8069 5689

c语言程序设计函数插入法 c语言添加函数

怎样用C语言程序实现插入法排序与起泡法算法排序??

直接插入排序的基本思想是:

10年积累的网站设计、成都做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先建设网站后付款的网站建设流程,更有府谷免费网站建设让你可以放心的选择与我们合作。

当插入第i

(i≥

1)

个对象时,前面的V[0],

V[1],

…,

v[i-1]已经排好序。这时,用v[i]的关键码与v[i-1],

v[i-2],

…的关键码顺序进行比较,找到插入位置即将v[i]插入,原来位置上的对象向后顺移。

用c实现的插入排序法,先输入10个数,然后利用插入排序法进行排序,将结果输出。

#include

"stdio.h"

#include

"conio.h"

main()

{

int

a[10],r[11];

int

*p;

int

i,j;

for(i=0;i10;i++)

{

p=a[i];

printf("please

scan

the

NO:

%d\n",i);

scanf("%d",p);

r[i+1]=a[i];

}

r[0]=1;

for(i=2;i=10;i++)

{

r[0]=r[i];

j=i-1;

while(r[j]r[0])

{

r[j+1]=r[j];

j--;

}

r[j+1]=r[0];

}

for(i=1;i=10;i++)

{p=r[i];printf("form

min

to

max

the

NO:

%d

value=%d\n",i,*p);}

getch();

}

起泡排序:需反复比较相邻两个数的比较与交换这两种基本操作。对相邻的两个数进行比较时,如果反面的数大于(或小于)前面的数,将这两个数进行交换,大的数(小的数)往前冒。

void

Sort(a,n)

/*排序*/

{

float

a[];

int

n;

{

int

i;

int

flag;

float

t;

do{

flag=0;

for(i=0;i=n-2;i++)

if(a[i+1]a[i])

{

t=a[i];a[i]=a[i+1];a[i+1]=t;

flag=1;

}

}while(flag);

}

C语言函数实现插入

这个很简单啊。基本的思路就是先查找到插入或者删除的数字所在数组的位置,如果是插入,就把之后的依次想后挪动一个,然后插入;如果是删除,把之后的依次想前移动一个就行了,不过别忘了处理最后一个数字就行了。要是还有问题,我帮你写个算了。

C语言插入法

这段程序是从前往后进行排序的。该程序r[1]--r[10]存储10个数,r[0]用来做标记。首先对于单独的r[1]是有序的。所以我们从r[2]开始和r[1]比较。这是为什么第一个for循环for(i=2;i11;i++);从i=2开始的原因。进入第一个for循环(是排序的那个,不是输入的那个)之后首先把r[i]元素保存在r[0]中,然后让该元素和其前面的元素相比较这一步反映在第二个for循环中for(;r[j]r[0];j--),在这里体现出了r[0]的标号作用,我们并不关心j是否会小于0,因为当j==0是r[j]r[0]已经不再成立。循环体内时比r[0]大的元素依次后移,推出了循环,这样当第二个for循环退出时就是因为r[j]r[0]不再成立,即找到了一个元素r[j]小于等于r[0];j之后的都比r[0]大。这时r[0]就应该在j+1的位置,即r[j+1]=r[0];这样经过一个内层的for循环就把原来i位置的元素按顺序插入到其前面有序的元素当中去了,当i==10全部排序完成。如原数组的元素为r[]={3,2,1,8,5},当i==2时的依次内循环后变为r[]={2,3,1,8,5};i==3时,我们要拿1和全面的元素比较,得到r[]={1,2,3,8,5}.依次类推,最后排序完成。

c语言插入法的思路

先将要插入的数放在已排好顺序的数组的最后一个,然后与前一个数进行比较,如果这个数比前一个小则交换,否则结束


网站栏目:c语言程序设计函数插入法 c语言添加函数
分享URL:http://cdxtjz.cn/article/dohcgpg.html

其他资讯