一维数组的四个算法_第1页
一维数组的四个算法_第2页
一维数组的四个算法_第3页
一维数组的四个算法_第4页
一维数组的四个算法_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一维数组的四个算法,排序 查找 插入 删除,程序举例2:用起泡法对10个数排序(由小到大)。,起泡法的思路是:将相邻两个数比较,将小的调到前头。,排序过程: (1)比较第一个数与第二个数,若为逆序0a1,则交换;然后比较第二个数与第三个数;依次类推,直至第n-1个数和第 n个数比较为止第一趟冒泡排序,结果最大的数被安置在最后一个元素位置上; (2)对前n-1个数进行第二趟冒泡排序,结果使次大的数被安置在第n-1个元素位置; (3)重复上述过程,共经过n-1趟冒泡排序后,排序结束。,例,38,49,76,97,13,97,27,97,30,97,13,76,76,76,27,30,13,65,2

2、7,65,30,65,13,13,49,49,30,49,27,38,27,38,30,38,#include void main( ) int a10; int i,j,t; printf(input 10 numbers:n); for (i=0;iai+1) t=ai;ai=ai+1; ai+1=t; printf(the sorted numbers :n); for(i=0;i10;i+) printf(%d ,ai); printf(n); ,程序运行结果如下: input 10 numbers: 1 0 4 8 12 65 -76 100 -45 123 the sorted n

3、umbers: -76 -45 0 1 4 8 12 65 100 123,例 用简单选择法对10个数排序,排序过程: (1)首先通过n-1次比较,从n个数中找出最小的, 将它与第一个数交换第一趟选择排序,结果最小的数被安置在第一个元素位置上; (2)再通过n-2次比较,从剩余的n-1个数中找出关键字次小的记录,将它与第二个数交换第二趟选择排序; (3)重复上述过程,共经过n-1趟排序后,排序结束。,例,初始: 49 38 65 97 76 13 27 ,i=1,13,49,一趟: 13 38 65 97 76 49 27 ,i=2,27,38,六趟: 13 27 38 49 65 76 97

4、 ,#include void main( ) int a11,i,j,k,x; printf(Input 10 numbers:n); for(i=1;i11;i+) scanf(%d, ,查找: 顺序查找 折半查找:元素已排好序,13253647586971 查找x=69,if(x=amid) else if(xamid) top=mid+1; else bot=mid-1;,#include #define N 10 void main( ) int aN,top, mid, bot, find=0, x; printf(Input %d numbers:n , N); for(i=0;

5、iN;i+) scanf(%d, ,删除:从一组数中删除一个给定数据x,1251348563972 x=56,for(i=0; iN; i+) if(x=ai) p=i; break; for(i=p;iN-1;i+) 或: for(i=p+1;iN;i+) ai=ai+1; ai-1=ai;,思考:如果要删除的x在原数组中不止一个,把所有的都删除,程序该如何写?,#include #define N 10 void main( ) int aN,i, x, p; printf(Input %d numbers:n , N); for(i=0;iN;i+) scanf(%d, ,插入:将一个给定数据x插入到一个已排好序的数组中,要求插入后原数组仍然有序。,12356789插入x=4,1.找插入位置p 2.将p及其后的数据依次后移 3.将x赋值给ap 注意:数组定义要大一些,#include #define N 10 void main( ) int aN+1,i, x, p; printf(Input %d numbers:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论