数据结构
文章平均质量分 60
octupus
这个作者很懒,什么都没留下…
展开
-
冒泡排序 java实现
package sort;///冒泡排序 两两比较相邻记录的关键字,反序就交换,直到没有反序的为止;////复杂度分析 最好情况时间复杂度为o(n),最坏为o(n^2)public class BubbleSort {public static void main(String[] args) {// TODO 自动生成的方法存根int []a={7,6,4,原创 2017-04-01 13:41:28 · 226 阅读 · 0 评论 -
选择排序 java实现
package sort;///简单选择排序:通过n-i次比较关键字,从n-i+1个记录中选出关键字最小的记录,和第i(1///复杂度分析 比较n(n-1)/2次,最好情况交换0次,最坏情况交换n-1次。总时间复杂度为 比较次数+交换次数 o(n^2),由于冒泡排序public class SelectSort {public static void main(Str原创 2017-04-01 13:44:28 · 235 阅读 · 0 评论 -
直接插入排序 java实现
package sort;///直接插入排序 将一个记录插入到已经排好序的序列表中,得到一个新的、记录加一的序列表///需要设置一个额外的数组空间临时存储///时间复杂度 最好比较n-1次,最坏比较2+3+...+n=(n+2)(n-1)/2次,移动3+4+...+n+1=(n+4)(n-1)/2 总共为o(n^2),优于冒泡和选择public class InsertSo原创 2017-04-01 13:45:50 · 223 阅读 · 0 评论 -
希尔排序 java实现
package sort;/*希尔排序 跳跃分割,先基本有序,再通过直接插入排序使序列有序 * 与直接插入排序一样,需要一个额外的缓存空间 *复杂度分析 o(n^(3/2)) */ public class ShellSort {public static void main(String[] args) {// TODO 自动生成的方法存根int a原创 2017-04-01 13:46:45 · 288 阅读 · 0 评论 -
基数排序 java实现
package sort;//基数排序:稳定排序public class RadixSort {// d为数据长度,根据数据长度排几次序private static int[] radixSorting(int[] arr, int d) {for (int i = 0; i arr = countingSort(arr, i); // 依次对各位数字排序(直接用计原创 2017-04-01 13:48:07 · 315 阅读 · 0 评论 -
堆排序 java实现
package sort;/*堆排序 * 构建堆的时间复杂度为哦O(n) * 第i次取堆顶记录重建需要用O(log i)的时间,需要n-1次堆顶记录,因此时间复杂度为O(nlog n) * 适合待排序序列元素较多的情况 */public class HeapSort {public static void main(String[] args) {//原创 2017-04-01 13:50:10 · 403 阅读 · 1 评论 -
快速排序 java实现
package sort;/*快速排序 通过一趟排序将待排序记录分割成独立的两部分,其中一部分的关键字均小于另一部分,分别对两部分继续排序,以达到整个序列有序的目的 * 次算法是优化过的快速排序算法 * 快速排序适用于元素比较多的排序,元素少时不如基本排序效率高 * 时间复杂度 O(log n) */public class QuickSort {pub原创 2017-04-01 13:50:53 · 324 阅读 · 0 评论 -
归并排序递归 java实现
package sort;public class MergeSort1 { /*** 归并排序 * 简介:将两个(或两个以上)有序表合并成一个新的有序表 即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列 * 时间复杂度为O(nlogn) 稳定排序方式 */ public st原创 2017-04-01 13:52:27 · 546 阅读 · 0 评论