
排序算法
coder_flag
南昌大学软件工程专业学生。
展开
-
冒泡排序
思想: 冒泡排序的基本思想是,对相邻的元素进行两两比较,顺序相反则进行交换,这样,每一趟会将最小或最大的元素“浮”到顶端,最终达到完全有序public class BubleSort { public static void sort(int[] arr){ for(int i =0 ;i<arr.length ;i++){ bool...原创 2019-05-15 19:22:01 · 197 阅读 · 0 评论 -
选择排序
思想: 简单选择排序是最简单直观的一种算法,基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。public class SelectSort { public static void sort(int[] arr) { for (int i = 0; i < arr.length; i+...原创 2019-05-15 19:24:27 · 214 阅读 · 0 评论 -
插入排序
思想: 直接插入排序基本思想是每一步将一个待排序的记录,插入到前面已经排好序的有序序列中去,直到插完所有元素为止。public class InsertSort { public static void sort(int[] arr) { for (int i = 0; i < arr.length - 1; i++) { for (in...原创 2019-05-15 19:26:05 · 159 阅读 · 0 评论 -
快速排序
思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列public class QuickSort { public static void sort(int[] arr) { quickSort(arr, 0, ar...原创 2019-05-15 19:28:19 · 175 阅读 · 0 评论 -
堆排序
思想:堆排序最主要在于构建堆这个数据结构上,构建好堆后,排序工作主要是插入,取出等操作。堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。构建堆的两个最主要操作是 shiftUp() 、 shiftDown()。public class QuickSort { public static void sort(int[] arr) { ...原创 2019-05-15 19:33:47 · 187 阅读 · 0 评论 -
归并排序
思想:归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。算法复杂度为 O(nlogn) 级别public class MergeSort { public stat...原创 2019-05-15 19:36:46 · 153 阅读 · 0 评论