用for循环实现冒泡排序(升序): array = [3,2,1] for i in range(len(array) - 1, 0, -1): for j in range(0, i): if array[j] > array[j + 1]: array[j], array[j + 1] = ar ...
分类:
编程语言 时间:
2020-12-10 10:44:59
阅读次数:
5
**算法名称:**选择排序 基本原理(从小到大): S1:选出数组中最小元素(记下标为i)(一基准值也可)。 S2:从剩余待排序数组元素选出最小元素与下标为(i+1)元素交换。 S3:重复S2。 算法图示: 图片来自https://www.runoob.com/w3cnote/selection-s ...
分类:
编程语言 时间:
2020-12-09 12:30:22
阅读次数:
9
总时间限制: 1000ms 内存限制: 65536kB描述 给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。 输入共2行:第1行为 N;第2行为 N 个正整数,其间用空格间隔。输出增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。样例输入 10 1 ...
分类:
其他好文 时间:
2020-12-09 12:11:33
阅读次数:
5
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 进阶: 你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗? 示例 1: 输入:nums = [5,7, ...
分类:
编程语言 时间:
2020-12-07 12:06:51
阅读次数:
6
Leetcode 108 将有序数组转换为二叉搜索树 数据结构定义: 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是: ...
分类:
编程语言 时间:
2020-12-05 11:08:08
阅读次数:
9
思想:每次遍历列表,选择一个最大或者最小的数,然后将该数放在列表前面, 整个列表可以分为2部分:左边为每次选择的最大/最小数,右边等待选择的数据. 这个过程需要n-1趟,最后一个数肯定是最大/最小的数。 #!/usr/bin/env python #-*- coding:utf-8 -*- ''' ...
分类:
编程语言 时间:
2020-12-04 11:35:56
阅读次数:
23
今天看到一道js题目如下: // 已知如下数组,编写一个程序将数组扁平化去并除其中重复部分数据,最终得到一个升序且不重复的数组 var arr = [ [1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14] ] ] ], 10]; 下 ...
分类:
编程语言 时间:
2020-12-02 12:10:14
阅读次数:
5
108. 将有序数组转换为二叉搜索树 Difficulty: 简单 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树_每个节点 _的左右两个子树的高度差的绝对值不超过 1。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是 ...
分类:
编程语言 时间:
2020-12-01 12:09:01
阅读次数:
6
##题目描述 给定一个数组a和数字k,找出a中第k大的数。 ##方法一:快排思想 找到一个枢轴,枢轴右边还有k-1个数即可。因为每次遍历只选择一边,因而降低了时间复杂度。 public class Main { public static int kthBiggest (int[]a,int k,i ...
分类:
其他好文 时间:
2020-12-01 11:48:36
阅读次数:
3
冒泡排序:比较相邻两个项,若 第一个项 大于 第二个项,那么交换他们,元素向上移动一次,直到遍历结束。 来实现一下 function bubbleSort(arr) { // 提前存储数组的长度 避免每次遍历都读这个值 let { length } = arr // 开始一个外层循环,代表每次取下标 ...
分类:
编程语言 时间:
2020-11-30 15:29:42
阅读次数:
6