收藏 分享(赏)

排序算法时间复杂度比较.doc

上传人:精品资料 文档编号:10650529 上传时间:2019-12-14 格式:DOC 页数:12 大小:65.54KB
下载 相关 举报
排序算法时间复杂度比较.doc_第1页
第1页 / 共12页
排序算法时间复杂度比较.doc_第2页
第2页 / 共12页
排序算法时间复杂度比较.doc_第3页
第3页 / 共12页
排序算法时间复杂度比较.doc_第4页
第4页 / 共12页
排序算法时间复杂度比较.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、11排序算法比较主要内容:1)利用随机函数产生 10000个随机整数,对这些数进行多种方法排序。2)至少采用 4种方法实现上述问题求解(可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序) ,并把排序后的结功能果保存在不同的文件里。3)给出该排序算法统计每一种排序方法的性能(以运行程序所花费的时间为准进行对比) ,找出其中两种较快的方法。程序的主要功能:1.随机数在排序函数作用下进行排序2.程序给出随机数排序所用的时间。算法及时间复杂度(一)各个排序是算法思想:(1)直接插入排序:将一个记录插入到已排好的有序表中,从而得到一个新的,记录数增加 1的有序表。(2)冒

2、泡排序:首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换,然后比较第二个记录和第三个记录的关键字。依此类推,直到第 N-1和第 N个记122录的关键字进行过比较为止。上述为第一趟排序,其结果使得关键字的最大纪录被安排到最后一个记录的位置上。然后进行第二趟起泡排序,对前 N-1个记录进行同样操作。一共要进行N-1趟起泡排序。(3)快速排序:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,已达到整个序列有序。(4)选择排序:通过 N-I次关键字间的比较,从 N-I+1个记录中选出关键字最

3、小的记录,并和第 I(1 -1 /如果 i = j 推出循环 if(i = j) break; else /教化 i和 j位置的元素 int t = arri; arri = arrj; arrj = t; arrleft = arrj; 177arrj = s; /对左面进行递归 fastSort(arr,left,j-1); /对右面进行递归 fastSort(arr,j+1,right); return arr; /*插入法排序* param arr 需要排序的数组* return int*/private static int insertSort(int arr) for(int i

4、 = 1;i arrj+1) int t = arrj; arrj = arrj+1; arrj+1 = t; return arr; 199/*选择法排序* param arr* return*/private static int choiceSort(int arr) for(int i = 0;i arr.length;i+) int m = i; for(int j = i + 1;j arr.length;j+) /如果第 j个元素比第 m个元素小,将 j赋值给m if(arrj arrm) m = j; /交换 m和 i两个元素的位置 if(i != m) int t = arr

5、i; arri = arrm; arrm = t; 11010return arr; /*打印数组* param arr 需要打印的数组*/private static void print(int arr)if(arr=null|arr.length=0)return;for (int i = 0; i arr.length; i+) System.out.print(arri+“,“);测试结果:11111总结:好的算法编程技巧高效率好的程序。1、做什么都需要耐心,做设计写程序则更需要耐心。一开始的时候,好不容易写好了程序,可是等最后调试的时候发现错误很隐蔽,就很费时间了。后来我先在纸上构思出函数的功能和参数,先把各小部分编好才编主函数,考虑好接口之后才动手编,这样就比较容易成功了。2、做任何事情我决定都应该有个总体规划。之后的工作按照规划逐步展开完成。对于一个完整的程序设计,首先需要总体规划写程序的步骤,分块写,分函数写,然后写完一部分马上纠错调试。而不是像我第一次那样,一口气写完,然后再花几倍的时间调试。一步步来,走好一步再走下一步。3、感觉一开始设计结构写函数体现的是数据结构的思想,后面的调试则更加体现了人的综合素质,专业知识、坚定耐心、锲而不11212舍,真的缺一不可。4、通过这次实验,复习了 Java语言相关知识,磨练了我的意志,是我更有了自信心。

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报