算法导论——选择排序
2015-12-28 00:35
295 查看
import java.util.Arrays; public class SelectionSort { private final static int MAX_VALUE = 100; private final static int LENGTH = 10; public static void main(String[] args) { int[] A = new int[LENGTH]; randomIntArray(A); System.out.println(Arrays.toString(A)); selectionSort(A); System.out.println(Arrays.toString(A)); } private static void randomIntArray(int[] array) { if(array == null) return; for(int i = 0; i < array.length; i++) { array[i] = (int) (Math.random() * MAX_VALUE); } } private static void selectionSort(int[] A) { // 选择排序 int smallest = 0, temp = 0; // 循环不变式 : A[0...i-1] // Price Times for(int i = 0; i < A.length - 1; i++) { // P1 length smallest = i; // P2 length - 1 for(int j = i + 1; j < A.length; j++) { // P3 1 + 2 + ... + length - 1 if(A[j] < A[smallest]) { // P4 1 + 2 + ... + length - 1 smallest = j; // P5 2 + 4 + ... + length - 1 } // * 0 } // * 0 temp = A[smallest]; // P6 length - 1 A[smallest] = A[i]; // P7 length - 1 A[i] = temp; // P8 length - 1 } // 总时间 = a*n^2 + b*n + c } }
相关文章推荐
- CentOS使用sendmail发送邮件
- uinavigationcontrollerdemo
- 好像自己领悟出的道理,能够记得更深刻一些
- tomcat虚拟主机的配置(区别虚拟路径)
- hdu 3333 Turing Tree
- ViewPager 设置自定义滑动速度
- We selected 'UTC' for '8.0/no DST' instead in......
- [简单实用系列] 微博第三方登录
- myeclpse中 JRE System Library和 javaEE library的区别
- 大组合取模之:1<=n<=m<=1e6,1<=p<=1e9
- Swift - 访问控制(private,internal,public)
- 关于java web中字符编码和url编码的理解
- EasyUI表单内容整理
- Keepalived+mysqlAB高可用
- 通用des加密
- ruby: 读写excel文件
- CSS 笔记三(Tables/Box Model/Outline)
- C#学习笔记008-继承
- 【GitHub】如何在自己的项目中添加"Fork me on GitHub"标识
- JAVA 正则表达式要点总结