前言 将下面按照从小到大排序: int[] arr = { 4, 6, 8, 5, 9 }; 这时候可以通过冒泡排序,计数排序等。 但是一但数据arr很大,那么会产生排序过于缓慢,堆排序就是一个很好的解决方案。 树的堆,有最大堆和最小堆。 看下最大堆: 它是这样子的,就是说一个节点的大小一定大于它的 ...
分类:
编程语言 时间:
2020-07-10 11:22:48
阅读次数:
72
一. 今天学习了一些算法; 求最小值,最大值,平均值 接着学了几种排序方法 1.冒泡排序 (1)逐一比较数组中响铃的两个元素,如果后面的数字小于前面的数字,就交换先后元素; (2)经过一个轮次的比较,一定有一个最大的排在最后的位置; (3)每次比较省下的元素,经过n-1次比较 2.选择排序 (1)将 ...
分类:
编程语言 时间:
2020-07-10 00:06:28
阅读次数:
56
选择排序 选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从arr[0]~arr[n-1]中选取最小值,与arr[0]交换,第二次从arr[1]~arr[n-1]中选取最小值,与arr[1]交换,第三次从arr[2]~arr[n-1]中选取最小值,与arr[2] ...
分类:
编程语言 时间:
2020-07-09 19:37:30
阅读次数:
58
在Java中数组的复制几种比较通用的方法 1、for 循环逐个复制 //源数组 int[] source = {4,5,1,2,3}; //目标数组 int[] target = new int[source.length]; for (int i = 0;i < source.length;i++ ...
分类:
编程语言 时间:
2020-07-09 19:14:26
阅读次数:
72
快速排序 本篇内容共分两部分:分而治之,快速排序。 分而治之(divide and conquer,D & C)——种著名得递归式问题解决办法。 快速排序是一种排序算法其速度比选择排序快得多。 1. 分而治之 首先,我们申明一下D&C的工作原理: 找出简单的基线条件(跳出无限循环的条件) 确定如何缩 ...
分类:
编程语言 时间:
2020-07-09 01:02:14
阅读次数:
77
var arr=[12,83,27,65,45,32,27,11,4]; var k; for(i=0;i<arr.length-1;i++){ for(j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ k=arr[j]; arr[j]=arr[j+1] ...
分类:
编程语言 时间:
2020-07-08 20:00:42
阅读次数:
71
冒泡排序 4.1 基本介绍 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换 ...
分类:
编程语言 时间:
2020-07-07 23:42:15
阅读次数:
89
D 看错了一下题目意思,特别说一下:任意两个商店间只需要花$1$个单位的时间即可前往 若我们确定要前往的商店的集合$S$,对于$\forall i,j\in S$,若$i$在$j$前面,则满足: $$1+a_\times(t+1)+b_+1+a_\times(t+1+a_\times(t+1)+b_ ...
分类:
其他好文 时间:
2020-07-07 23:21:28
阅读次数:
131
用两个for来实现 两个for的作用 :单拎出来一个,与未排序的数字比较去掉,如果后面的值小于本身,则互换 例如:1 3 2 拎出来 2 与前面的数字比较,碰到 3 了 3赋值给临时变量temp; 2放到3的位置上去,temp放到原来2的位置上去 import java.util.Arrays; p ...
分类:
编程语言 时间:
2020-07-07 22:13:45
阅读次数:
61
简单排序 简单排序,其实就是冒泡排序的一种别称,其工作原理就是:一个有n个元素的列表,经过n-1轮的排序后就是一个有序的列表,每轮选出该轮中最大/小的数填充到新的列表中,因为前n-1个已经排好序,自然而然最后一个已经好了。就好像10个高矮不一的人要排成从矮到低的列,我们就可以,第一次选出最矮的站在新 ...
分类:
编程语言 时间:
2020-07-07 19:47:17
阅读次数:
52