算法设计与分析基础实验报告
应用数学学院
二零一六年六月
实验一插入排序算法
一、实验性质设计
二、实验学时14学时
三、实验目的
1、掌握插入排序的方法和原理。
2、掌握java语言实现该算法的一般流程。
四、实验内容
1、数组的输入。
2、输入、输出的异常处理。
3、插入排序的算法流程。
4、运行结果的输出。
五、实验报告
Ⅰ 、算法原理
从左到右扫描有序的子数组直到遇到一个大于或小于等于A[n-1]的元素然后就把A[n-1]插在该元素的前面或后面。
插入排序基于递归思想。
Ⅱ、书中源代码
算法Ins e rtionS o rt A[0..n-1]
//用插入排序对给定数组A[0. .n-1]排序
//输入 n个可排序元素构成的一个数组A[0. .n-1]
//输出非降序排列的数组A[0. .n-1]fori←1 to n-1 dov←A[i]j←i-1while j≥0andA[j] > vdo
A[j+1]←A[j]j←j-1
A[j+1] ← v
Ⅲ、 Java算法代码import j ava.util.*;pub lic class C haru{pub lic static vo id main(String[] args) {int n=5;int a[]=new int[n];int s=a.length;int i=0, j=0,v=0;
S ys te m.o ut.pr int ln("请输入若干个数字 ");Scanner sc=new Scanner(System.in);try{while(i<s) {a[i]=sc.nextInt();i++;
}for(i=1; i<s; i++) {v=a[i];j=i- 1;while(j>=0&&a[j]>v) {a[j+1]=a[j];j--;
}a[j+1]=v;
}
S ys te m.o ut.pr int ln("插入排序结果显示 ");for(i=0; i<s; i++) {
S ys te m.o ut.pr int ln(a[i]);
}
} catch(Exceptio n es) {
S ys te m.o ut.pr int ln(e s);
}
}
}
Ⅳ、运行结果显示
图1 图2
Ⅴ、实验结论
插入排序的基本操作是键值比较A[j]>v。键值比较次数显然依赖于特定的输入在最坏的情况下插入排序与选择排序的键值比较次数是完全一致的。在最好的情况下在外部循环的每次迭代中比较次数只执行一次。插入排序的平均性能比最差性能快两倍以及遇到基本有序的数组时表现出优异的性能使得插入排序领先与选择排序和冒泡排序。
关于半月湾HMBCloud商家之前也有几篇那文章介绍过这个商家的产品,对于他们家的其他产品我都没有多加留意,而是对他们家的DC5机房很多人还是比较喜欢的,这个比我们有些比较熟悉的某商家DC6 DC9机房限时,而且半月湾HMBCloud商家是相对便宜的。关于半月湾DC5机房的方案选择和介绍:1、半月湾三网洛杉矶DC5 CN2 GIA同款DC6 DC9 1G内存 1TB流量 月$4.992、亲测选择半...
速云怎么样?速云,国人商家,提供广州移动、深圳移动、广州茂名联通、香港hkt等VDS和独立服务器。现在暑期限时特惠,力度大。广州移动/深圳移动/广东联通/香港HKT等9折优惠,最低月付9元;暑期特惠,带宽、流量翻倍,深港mplc免费试用!点击进入:速云官方网站地址速云优惠码:全场9折优惠码:summer速云优惠活动:活动期间,所有地区所有配置可享受9折优惠,深圳/广州地区流量计费VDS可选择流量翻...
justhost.ru官方来消息说已经对网络进行了比较全面的优化,针对中国电信、联通、移动来说,4个机房总有一个适合中国用户,让站长进行一下测试,这不就有了这篇有关justhost的VPS的第四次测评。本帖主要关注的是网络,对于其他的参数一概不管! 官方网站:https://justhost.ru 最低配VPS:8.3元/月,KVM,512M内存,5G硬盘,200M带宽,不限流量 购买链接:...