2013年10月11日

java冒泡排序

摘要: 1 /** 2 * 原理: 3 * 进行n次循环,每次循环从后往前对相邻两个元素进行比较,小的往前,大的往后 4 * 5 * 时间复杂度: 6 * 平均情况:O(n^2) 7 * 最好情况:O(n) 8 * 最坏情况:O(n^2) 9 *10 * 稳定性:稳定11 **/12 public class 冒泡排序 {13 14 public int[] bubbleSort(int[] a, int n) {15 for (int i = 0; i i; j--) {// i or i-1 ?18 if (a[j]... 阅读全文

posted @ 2013-10-11 15:17 tianyuanshgan 阅读(139) 评论(0) 推荐(0) 编辑

java选择排序

摘要: 1 /** 2 *原理:从无序表a[n]从a[0]到a[n-1]查找出最小值,与第一个元素对调, 3 *然后再除去首个元素,对a[1]~a[n-1]排序,循环n-1次生成有续表。 4 * 5 *时间复杂度: 6 *平均情况:O(n^2); 7 *最好情况:O(n^2); 8 *最坏情况:O(n^2)。 9 *10 *稳定性:不稳定(插入排序一般都不稳定,如堆排序)11 * */12 13 public class 选择排序 {14 15 public int[] selectSort(int[] a, int n) {16 for (int i =... 阅读全文

posted @ 2013-10-11 13:11 tianyuanshgan 阅读(155) 评论(0) 推荐(0) 编辑

java插入排序

摘要: import javax.naming.ldap.SortControl;/** * 原理:分成有序区和无序区,将无序区的元素a[i]从后向前逐一与有序区的元素a[j]进行比较, * 若a[j]>a[i],则将a[j]放到a[j+1]位置,即查找与换位同时进行, 直到找到一个a[j]= 0; j--) { if (a[j] > x) a[j + 1] = a[j]; else break; } a[j + 1] = ... 阅读全文

posted @ 2013-10-11 12:41 tianyuanshgan 阅读(249) 评论(0) 推荐(0) 编辑

java堆排序

摘要: /*堆排序属于选择排序时间复杂度:平均情况:O(nlogn)最好情况:O(nlogn)最坏情况:O(nlogn)稳定性:不稳定 */public class my堆排序 { // 筛运算 public static void sift(Object[] a, int n, int i) { Object x = a[i]; int j = 2 * i + 1; // 左孩子不为空时进行循环 while (j = 0; i--) { sift(a, n, i); } // 排序过... 阅读全文

posted @ 2013-10-11 11:26 tianyuanshgan 阅读(526) 评论(0) 推荐(0) 编辑

导航