ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:158.94KB ,
资源ID:25676294      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25676294.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子科技大学软件技术基础查找和排序.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子科技大学软件技术基础查找和排序.docx

1、电子科技大学软件技术基础 查找和排序软件技术基础上机实验报告罗子建 2016010902012上机实验五 5.1一、程序流程说明有条理的文字或流程图*二、程序代码 #include #include #includestdafx.h#define MAXNUM 20typedef struct int dataMAXNUM; int length;list_type;void createlist(list_type *lp) int i, elem; lp-length = 0; printf(nplease input datas of the listn); for (i = 0; id

2、atai = elem; lp-length+; int sort(list_type *list,int key) int i; for (i = 0; i length; ) if (list-datai != key) i+; else printf(成功查找n); break; return i+1;int binsearch(list_type *list, int key) int low = 0, mid, high = list-length - 1; while (low = high) mid = (low + high) / 2; if (key datamid) hig

3、h = mid - 1; else if (key list-datamid) low = mid + 1; else return mid; int main() int m; int i; list_type list; createlist(&list); printf(请输入你想顺序查找的元素值:); scanf_s(%d, &m); i=sort(&list, m); printf(你所查找的元素位置为:%d,i); printf(请输入你想二分查找的元素值:); scanf_s(%d, &m); i = binsearch(&list, m); printf(你所查找的元素位置为:

4、%d, i);三、测试数据please input datas of the list310131740435070-1请输入你想顺序查找的元素值:43成功查找你所查找的元素位置为:6请输入你想二分查找的元素值:5你所查找的元素位置为:1请按任意键继续. . .四、上机时遇到的问题(可分为编译问题和逻辑问题)对于二分查找,我之前使用的mid 一直不能求解到最正确的位置,后来通过编译调试得到正确的答案。五、实际运行结果:六 、小结 体会:对于顺序查找和二分查找的理解,我又有一定的进一步认识,对于二分查找的mid的定义,对于一串数字的奇偶性判断,一定要知道int 为求整类型。一,程序流程说明有条理

5、的文字或流程图*二,程序代码#include stdafx.h#include#includeint Hash(char * cp) int n, i; int sum = 0; n = strlen(cp); for (i = 0; i n; i+) sum += (int)*cp; cp+; return(sum % 30);int main() char hash3020; for (int i = 0; i = 30) printf(班级人数已满!n); else strcpy_s(hashx, temp); printf(请输入姓名:); gets_s(temp, 20); prin

6、tf(n); printf(请输入要查找的姓名:); gets_s(temp, 25); printf(n); x = Hash(temp); while (hashx != NULL&x= 30 | hashx = NULL) printf(查找失败!n); 三,测试数据请输入姓名:alalall请输入姓名:assa请输入姓名:asasas请输入姓名:s请输入姓名:as请输入姓名:aas请输入姓名:as请输入姓名:请输入要查找的姓名:sa查找成功,序号为: 2请按任意键继续. . .四、上机时遇到的问题(可分为编译问题和逻辑问题)在对于字符串的输出的时候,确实是需要对字符串的处理函数要清楚,

7、比如就要添加string.h的库文件。五、实际运行结果:六 、小结 体会:本题利用哈西查找,需要用到字符处理的一系列函数。这次编写程序让我温习了C语言中字符处理的一些函数,string库函数中有复制strcpy函数、查找strchr函数、拼接strcat等函数,都是一些常用函数。5.3一,程序流程说明有条理的文字或流程图*二,程序代码#include #include malloc.h#include stdafx.h#include#define MAXNUM 20typedef struct list int length; int dataMAXNUM;list_type;list_ty

8、pe select_sort(list_type *a) int head = 0; while(headlength) int j = head; int min = j; while (j length) if (a-dataj datamin) min = j; j+; int temp = a-datahead; a-datahead = a-datamin; a-datamin = temp; head+; return *a;list_type insert_sort(list_type *a) int tail = 1; int j; int temp; while (tail

9、length) temp = a-datatail; j = tail - 1; while (j -1) if (temp dataj) a-dataj + 1 = a-dataj; a-dataj = temp; else a-dataj + 1 = temp; break; j-; tail+; return *a;list_type bubble_sort(list_type *a) int turn; int flag; int i; int temp; for (turn = a-length - 1; turn 1; turn-) flag = 0; for (i = 0; i

10、datai a-datai + 1) temp = a-datai; a-datai=a-datai + 1; a-datai + 1 = temp; flag = 1; if (flag = 0) printf(完成冒泡排序n); return *a;void show(list_type *a) int i=0; printf(排序后的结果为: n); while(ilength) printf(%d , a-datai); i+; list_type menu(list_type *list) int m; int k; int i; printf(输入n个数据); scanf_s(%d

11、, &m); printf(n:%dn,m); list-length =0; for (i = 0; i datai = k; list-length+; return *list;int main() list_type list; list=menu(&list); printf(简单选择); select_sort(&list); show(&list); printf(n直接插入); insert_sort(&list); show(&list); printf(n冒泡排序n); bubble_sort(&list); show(&list);三,测试数据输入n个数据5n:5第1个元

12、素为:12第2个元素为:56第3个元素为:78第4个元素为:1第5个元素为:0简单选择排序后的结果为:0 1 12 56 78直接插入排序后的结果为:0 1 12 56 78冒泡排序完成冒泡排序排序后的结果为:11 12 56 78 请按任意键继续. . .四、上机时遇到的问题(可分为编译问题和逻辑问题)逻辑问题:在编写冒泡排序的时候,我不能对未排序的部分有所区分,想起老师说的,可以设置标志变量flag;当有需要的时候,我就可以做相应的条件判断。五、实际运行结果:六 、小结 体会:在对这个概念的训练中,我强化了简单选择,直接插入,冒泡排序的基本概念的理解。其实在整个训练过程中,我发现自己的码字

13、的速度有了很大的强化。哈哈哈哈哈,虽然有点赶,但还是在整个学期的过程中做了很大的功夫,不说自己记会了多少,还是可以摸着自己的良心说,我付出过4.4一,程序流程说明有条理的文字或流程图*二, 程序代码#include stdafx.h#include #include #include #define MAX 10typedef int elemtype;void swap(elemtype *x, elemtype *y) *x = *x + *y; *y = *x - *y; *x = *x - *y;void quick_sort(elemtype *num, int low, int h

14、igh) int i = low, j = high; low+; if (low = high) return; while (low = high) while (low *(num + i) high-; while (low high&*(num + low) *(num + i) low+; if (low high) swap(num + low, num + high); if (*(num + high) *(num + i) swap(num + high, num + i); else high-; quick_sort(num, i, low - 1); quick_so

15、rt(num, high + 1, j);int main() int num8; int s; printf(请输入需要排序的数:n); for (int i = 0; i 8; i+) printf(in put a date :); scanf_s(%d, &s); numi = s; printf(n排序前:); for (int i = 0; i 8; i+) printf(%d , numi); printf(n排序后:); quick_sort(num, 0, 8 - 1); for (int i = 0; i 8; i+) printf(%d , numi); return 0

16、;三 ,测试数据请输入需要排序的数:in put a date :8in put a date :56in put a date :41in put a date :23in put a date :85in put a date :0in put a date :0in put a date :6排序前:8 56 41 23 85 0 0 6排序后:0 0 6 8 41 23 56 85 请按任意键继续. . .四、上机时遇到的问题(可分为编译问题和逻辑问题)无五、实际运行结果:六 、小结 体会:这一个程序是对快速排序的方法的应用,对于我熟悉快速排序的方法有了很大的意义,这是我在这一学期编写的最后的一个程序,感触颇多。从开始什么都不会做,到最后的熟练地操作调试这一工作,的确,我收获了很多很多。首先感谢段老师,很亲近学生。不管哪个水平的学生都付出了无微不至的关怀,这是让我很感动的事情。在最关键的时候没有放弃我。最终还是要感谢自己,一个不肯放弃自己的人,终究还是要继续取得自己的小目标的,这学期结束报名计算机考试。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1