一维数组的四个算法.ppt

上传人:李医生 文档编号:7197037 上传时间:2020-11-05 格式:PPT 页数:10 大小:184KB
返回 下载 相关 举报
一维数组的四个算法.ppt_第1页
第1页 / 共10页
一维数组的四个算法.ppt_第2页
第2页 / 共10页
一维数组的四个算法.ppt_第3页
第3页 / 共10页
一维数组的四个算法.ppt_第4页
第4页 / 共10页
一维数组的四个算法.ppt_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《一维数组的四个算法.ppt》由会员分享,可在线阅读,更多相关《一维数组的四个算法.ppt(10页珍藏版)》请在三一文库上搜索。

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:n , N); for(i=0;i=p;i-) ai+1=ai; ap=x; for(i=0; iN+1; i+) printf(%d , ai); printf(n); ,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1