![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
排序算法
多种排序算法介绍
canghieever
这个作者很懒,什么都没留下…
展开
-
insertionSort_Java插入排序
插入排序的思想: 往一个已经排好序(从小到大)的序列中插入一个数num并保持有序,那么只需要找到第一个小于等于num的数,该数后第一个位置即是应该放置的位置。 插入排序: i=1,若arr[0] > arr[1] ,则把arr1放到arr0的前面(等价于把arr[1]插入到有序序列[ arr[0] ]里面),否则保持arr[0],arr[1]的位置,i++; 此时[ arr[0],arr[1] ]是有序的; i=2, 若arr[1] > arr[2],则把arr2插入到有序序列01里面 ,否则原创 2021-07-25 20:48:20 · 142 阅读 · 0 评论 -
selectionSort_Java选择排序
选择排序的思路比较简单, 即第一轮循环找出最小的数放在数组的第一个位置; 第二轮循环找出第二小的数放在数组的第二个位置; 。。。 public class SelectionSort { public static void sort(int[] arr){ for (int i = 0; i < arr.length; i++) { int minIndex = i; // 每次循环先把第一个数作为最小值 for (int原创 2021-07-25 18:49:24 · 70 阅读 · 0 评论 -
mergeSort_Java归并排序
利用归并的思想方法实现排序。 假设数组长度为n, 则数组可以看成n个有序的子序列,每个元素的子序列长度为1; 然后从下标为0到最后一个元素每两个元素排序,两两归并,则得到n/ 2个长度为2或1的有序子序列; 然后从左至右将每两个有序子序列里面的元素排序好,再次两两归并,得到n / 4个有序子序列; 重复上述步骤,直至得到一个长度为n的有序序列为止;这种方法称为2路归并排序 public class MergeSort { /** * * @param array 要排序的数组 * @pa原创 2021-07-22 23:18:58 · 198 阅读 · 0 评论 -
quickSort_Java快速排序
快速排序 public class QuickSort { /* * java快排, left, right分别为要被排序数组(或部分数组)最小、最大的下标索引 */ public static void quickSort(int[] array, int left, int right) { if (right - left < 1) { // 数组长度为1 或 0 时,退出排序 return ; } int pivot = array[left];原创 2021-07-18 21:59:22 · 136 阅读 · 0 评论 -
bubbleSort_Java冒泡排序
冒泡排序 public class BubbleSort { public static void bubbleSort(int[] array) { for (int i = 0; i < array.length - 1; i++) { // 每步将一个极值移到最末尾的位置,需要(数组长度-1)次操作, for (int j = 0; j < array.length - 1 - i; j++) { // 比较相邻值,每次需要比较(数组长度-1)次,外部循环i次把个极值放原创 2021-07-18 21:58:11 · 208 阅读 · 1 评论