算法: 1、首先,找到数组中最小的那个元素。 2、其次,将它和数组的第一个元素交换位置(如果第一个元素就是最小元素,那么它就和自己交换)。 3、再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。 这种方法叫做选择排序,因为它在不断地选择剩余元素之中的最 ...
分类:
编程语言 时间:
2020-07-15 15:42:51
阅读次数:
59
2020-07-14 下一个更大元素 II 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素), 输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数, 这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。 题解: ...
分类:
其他好文 时间:
2020-07-14 18:04:02
阅读次数:
48
排序 1.插入排序:插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动。较为稳定 时间复杂度:最好情况为0( ...
分类:
其他好文 时间:
2020-07-12 22:46:24
阅读次数:
72
##一、归并排序 该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 分割: 将数组从中点进行分割,分为左、右两个数组 递归分割左、右数组,直到数组长度小于2 归并: 如果需要合并,那么左右两数组已经有序了。 创建一个临时存储数组temp,比较两数组第一个元素,将较小的 ...
分类:
编程语言 时间:
2020-07-11 22:55:51
阅读次数:
61
##题意 传送门 通过两个栈,4中操作,实现输入序列升序排序 \(操作a:如果输入序列不为空,将第一个元素压入栈S_{1}\) \(操作b:如果栈S_{1}不为空,将S_{1}栈顶元素弹出至输出序列\) \(操作c:如果输入序列不为空,将第一个元素压入栈S_{2}\) \(操作d:如果栈S_{2}不 ...
分类:
编程语言 时间:
2020-07-11 17:08:48
阅读次数:
66
前言 什么是二叉堆排序呢? 就是上面这种,一个节点大于左节点,但是小于右节点,再我写的例子中会写出大于等于右节点。 那么如何让一个数组进行变成这种二叉树呢? 其实只要有规律就很简单。 第一个元素(0)作为根节点。 第二个元素如果比第一个元素则判断是否有左节点,如果没有左节点,就是它的左节点,如果有左 ...
分类:
编程语言 时间:
2020-07-11 00:19:46
阅读次数:
87
1. numpy 的array操作 # 1. 导入numpy库 import numpy as np # 2.建立一个一维数组 a 初始化为[4,5,6], # (1) 输出a 的类型(type) # (2) 输出a的各维度的大小(shape) # (3) 输出 a的第一个元素(值为4) a = n ...
分类:
其他好文 时间:
2020-07-10 23:56:06
阅读次数:
132
问题描述 : 给定两个以升序排列的整形数组 nums1 和 nums2, 以及一个整数 k。 定义一对值 (u,v),其中第一个元素来自 nums1,第二个元素来自 nums2。 找到和最小的 k 对数字 (u1,v1), (u2,v2) ... (uk,vk),按从小到大的顺序输出它们的和。 示例 ...
分类:
其他好文 时间:
2020-07-07 19:28:46
阅读次数:
80
这道题是要我们在一个二维数组里搜索某个元素target,找到了返回true,没找到返回false。 这个二维数组性质是,每一行都是升序的,且每一行的最后一个元素小于下一行的第一个元素。 都说升序和查找了,显然应该想到二分。 这题我最开始先按行二分,确定target(如果在数组里)所在的行,再对这一行 ...
分类:
其他好文 时间:
2020-07-04 22:55:42
阅读次数:
68
没想到的点:若haystack="mississippi",needle = "issip"。按我的匹配算法(在haystack中检索needle的第一个元素,若没有该元素返回-1,若有则搜索后边的元素是否对应,这是有问题的!!),匹配到haystack中前部分issis,程序就结束了,返回了-1, ...
分类:
编程语言 时间:
2020-07-04 15:12:40
阅读次数:
58