利用随机函数产生N个随机整数(10000以上),对这些数进行多种方法进行排序.具体要求如下:
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/11 08:18:03
利用随机函数产生N个随机整数(10000以上),对这些数进行多种方法进行排序.具体要求如下:
1) 至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、选择排序、希尔排序、快速排序、合并排序、堆排序).并把排序后的结果保存在不同的文件中.
2) 统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法.
1) 至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、选择排序、希尔排序、快速排序、合并排序、堆排序).并把排序后的结果保存在不同的文件中.
2) 统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法.
import java.io.RandomAccessFile;
import java.util.Vector;
import sun.misc.Sort;
public class TestSort {
\x05/**
\x05 * @param args
\x05 */
\x05public static void main(String[] args) {
\x05\x05 try {
\x05\x05\x05\x05//创建对象
\x05\x05\x05\x05 Vector arr = new Vector();
\x05\x05\x05\x05 String strs="";
\x05\x05\x05\x05 int count=10000;
\x05\x05\x05\x05 for (int i = 0; i < count; i++) {
\x05\x05\x05\x05\x05 arr.add(i + 1); //把 1-9 存入
\x05\x05\x05\x05 }
\x05\x05\x05\x05 for (int i = 0; i < count; i++) {
\x05\x05\x05\x05 int id=(int)(Math.random()*count);//随即取里面的数值 count控制随即大小
\x05\x05\x05\x05 strs+=arr.get(id)+",";
\x05\x05\x05\x05 arr.remove(id); //删除已经取走的值
\x05\x05\x05\x05 count--;
\x05\x05\x05\x05 }
\x05\x05\x05\x05Long d=0l;
\x05\x05\x05\x05strs="";
\x05\x05\x05\x05Long s1= sort1(arr);
\x05\x05\x05\x05\x05d=s1;
\x05\x05\x05\x05\x05strs="方法2,方法3 最快";
\x05\x05\x05\x05Long s2= sort2(arr);
\x05\x05\x05\x05if(d Long.parseLong(arr.get(out-1).toString())) {
\x05 continue;
\x05 }
\x05 int start = 0;
\x05 int end = out - 1;
\x05 while (start Long.parseLong(arr.get(searchIndex).toString())) {
\x05 start = searchIndex + 1;
\x05 } else if (Long.parseLong(arr.get(out).toString()) < Long.parseLong(arr.get(searchIndex).toString())) {
\x05 if (searchIndex == 0 || (searchIndex != 0 && Long.parseLong(arr.get(out).toString())> Long.parseLong(arr.get(searchIndex - 1).toString()))){//移动数据
\x05 Long changeTemp = Long.parseLong(arr.get(out).toString());
\x05\x05 for (int i = out; i > searchIndex; i--) {
\x05\x05 \x05arr.add(i,arr.get(i - 1));
\x05\x05 }
\x05\x05 arr.add(searchIndex,changeTemp);
\x05 break;
\x05 } else {
\x05 end = searchIndex - 1;
\x05 continue;
\x05 }
\x05 } else {//移动数据
\x05 Long changeTemp = Long.parseLong(arr.get(out).toString());
\x05 for (int i = out; i > searchIndex; i--) {
\x05 \x05arr.add(i,arr.get(i - 1));
\x05 }
\x05 arr.add(searchIndex,changeTemp);
\x05 break;
\x05 }
\x05 }
\x05 }
\x05 long dend = System.currentTimeMillis();
\x05 System.out.println("插入排序算法用时:" + (dend - dstart)+" 毫秒");
\x05
\x05 for(int i=0; i
import java.util.Vector;
import sun.misc.Sort;
public class TestSort {
\x05/**
\x05 * @param args
\x05 */
\x05public static void main(String[] args) {
\x05\x05 try {
\x05\x05\x05\x05//创建对象
\x05\x05\x05\x05 Vector arr = new Vector();
\x05\x05\x05\x05 String strs="";
\x05\x05\x05\x05 int count=10000;
\x05\x05\x05\x05 for (int i = 0; i < count; i++) {
\x05\x05\x05\x05\x05 arr.add(i + 1); //把 1-9 存入
\x05\x05\x05\x05 }
\x05\x05\x05\x05 for (int i = 0; i < count; i++) {
\x05\x05\x05\x05 int id=(int)(Math.random()*count);//随即取里面的数值 count控制随即大小
\x05\x05\x05\x05 strs+=arr.get(id)+",";
\x05\x05\x05\x05 arr.remove(id); //删除已经取走的值
\x05\x05\x05\x05 count--;
\x05\x05\x05\x05 }
\x05\x05\x05\x05Long d=0l;
\x05\x05\x05\x05strs="";
\x05\x05\x05\x05Long s1= sort1(arr);
\x05\x05\x05\x05\x05d=s1;
\x05\x05\x05\x05\x05strs="方法2,方法3 最快";
\x05\x05\x05\x05Long s2= sort2(arr);
\x05\x05\x05\x05if(d Long.parseLong(arr.get(out-1).toString())) {
\x05 continue;
\x05 }
\x05 int start = 0;
\x05 int end = out - 1;
\x05 while (start Long.parseLong(arr.get(searchIndex).toString())) {
\x05 start = searchIndex + 1;
\x05 } else if (Long.parseLong(arr.get(out).toString()) < Long.parseLong(arr.get(searchIndex).toString())) {
\x05 if (searchIndex == 0 || (searchIndex != 0 && Long.parseLong(arr.get(out).toString())> Long.parseLong(arr.get(searchIndex - 1).toString()))){//移动数据
\x05 Long changeTemp = Long.parseLong(arr.get(out).toString());
\x05\x05 for (int i = out; i > searchIndex; i--) {
\x05\x05 \x05arr.add(i,arr.get(i - 1));
\x05\x05 }
\x05\x05 arr.add(searchIndex,changeTemp);
\x05 break;
\x05 } else {
\x05 end = searchIndex - 1;
\x05 continue;
\x05 }
\x05 } else {//移动数据
\x05 Long changeTemp = Long.parseLong(arr.get(out).toString());
\x05 for (int i = out; i > searchIndex; i--) {
\x05 \x05arr.add(i,arr.get(i - 1));
\x05 }
\x05 arr.add(searchIndex,changeTemp);
\x05 break;
\x05 }
\x05 }
\x05 }
\x05 long dend = System.currentTimeMillis();
\x05 System.out.println("插入排序算法用时:" + (dend - dstart)+" 毫秒");
\x05
\x05 for(int i=0; i
利用随机函数产生N个随机整数(10000以上),对这些数进行多种方法进行排序.具体要求如下:
利用随机函数产生N个随机整数(200以上),对这些数进行由小到大的排序.要求:采用堆排序.
利用随机函数生成并输出8个1—10之间的随机整数,然后对这一组数从小到大进行排序,
利用随机函数产生30000个随机整数,利用插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序等排序方法进
使用选择排序法对随机输入的10个整数按从小到大进行排序
1. 编一个程序,产生30个随机整数,存入数组,用冒泡法或选择法分别对其进行排序.要求显示排序前后的数
随机产生10个介于0到100之间的整数,分别使用选择法和冒泡法对其进行升序排序
vb问题利用随机函数产生80个10~99之间的随机整数,
VB:随机产生 10 个整数,求其中最小的数.若随机产生n个整数又如何实现
VB的:用随机函数产生n个三位整数,用选择法排序后将它们的值从大到小输出,n=204!
利用随机函数产生50-100范围内的20个随机整数,显示其中的最大值、最小值、平均值
用C语言编写程序:* 利用随机函数产生100个10~99之间(包括10和99)的随机整数存入一维数组A,