给定长度为 $n$ 的序列 $a_i$,求一种将每个逆序对下标 $(u,v)$ 的排序,使依次交换每个 $(a_u,a_v)$ 后,$a_i$ 不减。
数据范围:$1\le n\le 1000$,$1\le a_i\le 10^9$。 ...
分类:
其他好文 时间:
2020-07-05 15:32:05
阅读次数:
59
  **有序度:**数组中具有有序关系的元素对的个数 有序元素对:a[i] <= a[j],如果i < j。 完全有序的数组,有序度就是 n * (n - 1) /2(满有序度) 逆序度 = 满有序度 - 有序度 冒泡排序 特性 原地 稳定 O(n**2)(最少0次 ...
分类:
编程语言 时间:
2020-07-03 17:57:00
阅读次数:
443
选择排序简介: 选择排序从数组的开头开始,将第一个元素和其他元素进行比较。检查完所有的元素后,最小的元素会被放到数组的第一个位置,然后算法会从第二个位置继续。这个过程一直进行,当进行到数组的倒数第二个位置时,所有的数据便完成了排序。 1 function selectionSort(arr) { 2 ...
分类:
编程语言 时间:
2020-07-03 17:52:53
阅读次数:
73
public class SelectionSort { public static void selectionSort(int[] arr) { //边界判断 if (arr == null || arr.length < 2) { return; } //1.控制范围 i~n-1 for (i ...
分类:
编程语言 时间:
2020-07-02 21:38:28
阅读次数:
62
写一个函数,用“起泡法”对输人的10个字符按由小到大顺序排列 题目解析: 该题主要是对冒泡排序的理解,外层循环控制排序的趟数,内层循环主要是进行每一趟排序的比较,如果前面的字符大于后面的字符,就进行交换,每做一趟排序,就把一个最大字符排在最后,以及每做一趟排序就需要少比较一个字符。 代码示例: #i ...
分类:
其他好文 时间:
2020-07-02 16:49:24
阅读次数:
58
冒泡排序:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 var arr=[31,21,5,2,36,6,99,4,101,2]; //外层循环 ...
分类:
编程语言 时间:
2020-07-02 09:21:13
阅读次数:
72
基本原理堆排序的基本原理也是选择排序,只是不在使用遍历的方式查找无序区间的最大的数,而是通过堆来选择无序区间的最大的数。大致过程:1.建堆(这里是以建大顶堆为例)先把数组中的数转换成二叉树的形式,在这个基础上建堆。这里用到的大顶堆的性质:所有父节点的值要大于其子节点的值。按照这个性质,将无序的二叉树调整成堆。父节点和子节点计算:如图是一个简易的二叉树,蓝色的数字为节点的序号。计算父节点的序号要根据
分类:
编程语言 时间:
2020-07-01 09:19:44
阅读次数:
46