排序算法
chongyucaiyan
一切皆有可能~
展开
-
Algorithm | 排序算法之冒泡排序
相关知识 冒泡排序 快速排序 直接插入排序 希尔排序 直接选择排序 堆排序 归并排序 基本思想 基本思想:比较,交换 代码实现 实现1: public static void bubbleSort(int[] array) { for (int i = 0; i < array.length; i++) { for (int j = 0; j + 1 < a...原创 2018-12-18 21:55:07 · 1364 阅读 · 0 评论 -
Algorithm | 排序算法之快速排序
相关知识 基本思想 基本思想:挖坑填数,分治法 代码实现 public static void quickSort(int[] array, int first, int last) { if (first >= last) { return; } int i = first, j = last; int tmp = array[i]; ...原创 2018-12-18 21:56:20 · 1840 阅读 · 1 评论 -
Algorithm | 排序算法之直接插入排序
相关知识 基本思想 基本思想:把无序区的第一个元素按顺序插入到有序区中 代码实现 实现1:交换 public static void insertionSort(int[] array) { for (int i = 1; i < array.length; i++) { for (int j = i - 1; j >= 0 && array[j...原创 2018-12-18 21:57:01 · 1422 阅读 · 0 评论 -
Algorithm | 排序算法之希尔排序
相关知识 基本思想 基本思想:增量分组,直接插入排序,缩小增量 代码实现 实现1:交换 public static void shellSort(int[] array) { for (int gap = array.length / 2; gap > 0; gap /= 2) { for (int i = gap; i < array.length; i++)...原创 2018-12-18 21:57:32 · 1707 阅读 · 0 评论 -
Algorithm | 排序算法之直接选择排序
相关知识 基本思想 基本思想:在无序区中找到最小(最大)的元素放在有序区的末尾 代码实现 public static void selectionSort(int[] array) { for (int i = 0; i < array.length; i++) { int min = i; for (int j = i + 1; j < arr...原创 2018-12-18 21:58:07 · 1463 阅读 · 0 评论 -
Algorithm | 排序算法之堆排序
相关知识 基本思想 基本思想:堆化,堆的删除 代码实现 实现1:交换 public static void heapSort(int[] array) { toHeap(array); for (int i = array.length - 1; i > 0; i--) { int tmp = array[i]; array[i] = arr...原创 2018-12-18 21:58:54 · 1824 阅读 · 0 评论 -
Algorithm | 排序算法之归并排序
相关知识 基本思想 基本思想:分治法,合并 代码实现 实现1: public static void mergeSort(int[] array, int first, int last) { if (first >= last) { return; } int middle = (first + last) / 2; mergeSort(a...原创 2018-12-18 21:59:28 · 1802 阅读 · 0 评论 -
Algorithm | 排序算法总结
排序算法总结 冒泡排序 基本思想:比较,交换 时间复杂度:O(N^2) 空间复杂度:O(1) 算法稳定性:稳定 快速排序 基本思想:挖坑填数,分治法 时间复杂度:O(NlogN) 空间复杂度:O(1) 算法稳定性:不稳定 直接插入排序 基本思想:把无序区的第一个元素按顺序插入到有序区中 时间复杂度:O(N^2) 空间复杂度:O(1) 算法稳定性:稳定 希尔排序 基本思想:增量...原创 2018-12-18 22:00:03 · 1869 阅读 · 0 评论