ICode9

精准搜索请尝试: 精确搜索
  • 【C# 数据结构与算法】 查找算法2022-06-09 18:34:33

    概览     查找算法相关的概念 查找定义:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录)。 查找算法分类: 1)静态查找和动态查找; 注:静态或者动态都是针对查找表而言的。动态表指查找表中有删除和插入操作的表。 2)无序查找和有序查找。 无序查找:被查找数列

  • 有序二叉排序树2022-05-30 23:33:09

    1.实现方式 /** * @Author QingHao * @Date: 2022/05/30/ 22:36 * @Describe 有序二叉排序树 */ public class BinarySearchTree<E extends Comparable<E>> { public Node root; /** * 添加节点 * * @param e * @return */ public b

  • 21. 合并两个有序链表——链表2022-05-26 11:02:26

        思路:和合并2个有序数组一样 细节:head=一个链表,可以指向链表的头节点            if head:   可以判断该链表当前是否还有Node

  • LeetCode 0147 Insertion Sort List2022-05-23 08:32:10

    原题传送门 1. 题目描述 2. Solution 1 1、思路分析 插入排序思想,把序列分成两部分,有序部分和待排序部分,初始时有序部分就1个元素,对于链表来说就是头结点。遍历链表把待排序部分的结点逐个插入到有序部分。 2、代码实现 package Q0199.Q0147InsertionSortList; import DataStru

  • 21. 合并两个有序链表2022-05-15 14:34:29

    class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { if(list1 == null){ return list2; } if(list2 == null){ return list1; } ListNode res = list1.val < list2.

  • 有序对与笛卡尔积2022-05-13 15:33:52

    一,有序对与笛卡尔积; 1,定义;第一个元素出现在每个子集合中 , 第二个元素只出现在一个子集合中 , 通过这种方式 , 保证了有序对的定义 , 一前一后两个元素 , 前后顺序不同 , 对应的有序对不同 ; 下面是相同的两个元素的不同的有序对 : 有序对 < a , b > = { { a } , { a , b } } <a,

  • 11:归并排序(重要)2022-05-10 16:31:06

    11:归并排序(重要)   时间复杂度:O(N * logN)     算法流程:   f(arr, L, R)   1、求重点M   2、左部分有序f(arr, L, M);   3、右部分有序f(arr, M+1, R);   4、想办法让左右两部分有序,也就是merge   从Master公式的角度来看:     2 * T(N/2) + O(N)  

  • 数据结构--插入排序和选择排序2022-05-09 15:33:59

    直接插入排序的思想是:是将n个待排序的元素由一个有序表和一个无序表组成,开始时有序表中只包含一个元素。排序过程中,每次从无序表中取出第一个元素,将其插入到有序表中的适当位置,使有序表的长度不断加长,完成排序过程。  例如,对序列21,48,21*,9进行直接插入排序,21和21*的相对位置在排序

  • 有序数组的平方2022-05-06 20:01:52

    有序数组的平方 977. 有序数组的平方 给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。 方法1:暴力排序 每个数平方之后,排个序 复杂度: 时间复杂度O(n + nlogn) 方法2: 双指针法 思路: 左右两个指针,对比平方数的大小,将更

  • 面试官:有一种数据类型,Redis 要存两次,为什么?2022-05-06 08:32:29

    来源:blog.csdn.net/zwx900102/article/details/113096979 前言 在 Redis 中,有一种数据类型,当在存储的时候会同时采用两种数据结构来进行分别存储,那么 Redis 为什么要这么做呢?这么做会造成同一份数据占用两倍空间吗? 五种基本类型之集合对象 Redis 中的集合对象是一个包含字符串类型

  • 哈希表,有序表介绍2022-05-02 11:00:07

    哈希表 是集合结构 如果只有key, 没有伴随数据value, 可以使用HashSet 有key 有 value,HashMap hashmap 和 hashset的区别就是有无value. 哈希表的增删改差 的时间复杂度都是O(1),常数时间比较大。 放入哈希表的东西,如果是基础类型,内部按值传递,内存占用就是 这个东西

  • k8s statefulset控制器2022-04-27 14:04:51

    k8s statefulset 1.1 简介 StatefulSet 是为了解决没有状态的服务的问题,Deployment和ReplicaSets是为无状态服务而设计,其应用场景包括: 稳定的持久化存储,即Pod重新调度后还能访问到相同的持久化数据,基于PVC来实现 稳定的网络标志,即Pod重新调度后,PodName和Hostname不变,基于Headless

  • 数据结构 顺序有序表的合并2022-04-23 01:01:07

    //顺序表类型定义 typedef struct { int *elem; //指示动态分配数组的指针 int length; //顺序表的当前长度 }SqList; void MergeList_Sq(SqList LA,SqList LB,SqList &LC){ //数组名=数组第一个元素的地址 int *pa=LA.elem; //指针pa指向LA的第一个元素

  • 一文搞定十大排序算法(动画图解)2022-04-22 16:31:43

    排序的定义 排序,就是重新排列表中的元素,使表中的元素满足按关键字递增或递减的过程。为了査找方便,通常要求计算机中的表是按关键字有序的。 排序的确切定义如下: 算法的稳定性: 若待排序表中有两个元素 Ri 和 Rj,其对应的关键字 keyi = kcyj , 且在排序前 Ri 在 Rj 的前面。使用某一

  • 合并两个有序链表2022-04-18 00:04:32

    一、题目 输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。 二、思路 1.创建一个dummy虚拟节点,定义一个遍历指针curr指向dummy 2.设置l1与l2都不为空的边界条件,比较链表l1与链表l2的值,将值小的节点赋给curr的next,移动l1或者l2, 条件判断完,移动curr指针 3

  • 合并两个有序链表_212022-04-13 10:04:18

    21. 合并两个有序链表:https://leetcode-cn.com/problems/merge-two-sorted-lists/将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) {

  • 减治法应用在插入排序算法2022-03-21 18:00:39

    减治法应用在插入排序算法问题描述算法实现 问题描述 采用减治法进行插入排序 减治法是将问题分割成子问题,子问题的解跟原问题存在某种关系,(划分为有序区和无序区) 初始时,将第0个位置设置为哨兵(防止越界) 划分有序区和无序区,第1个位置为有序区,其余为无序区 从第二个位置开始,在

  • 第一周学习情况总结2022-03-20 21:32:26

    通过本周练习和测试的题回顾了数据结构与算法的知识 1.冒泡排序 2.选择排序 3.插入排序 4.拓扑排序 冒泡排序 冒泡排序就是存在10个不同大小的气泡,由底至上地把较少的气泡逐步地向上升,这样经过遍历一次后,最小的气泡就会被上升到顶(下标为0),然后再从底至上地这样升,循环直至十个气泡

  • 同一份数据,Redis为什么要存两次?2022-03-19 23:36:41

    原文链接:https://mp.weixin.qq.com/s/UQDlh4vCPpKRxz5C8z_3EA 前言 在 Redis 中,有一种数据类型,当在存储的时候会同时采用两种数据结构来进行分别存储,那么 Redis 为什么要这么做呢?这么做会造成同一份数据占用两倍空间吗? 五种基本类型之集合对象 Redis 中的集合对象是一个包含字符串

  • leetcode88 合并两个有序数组2022-03-19 17:33:10

    leetcode88 合并两个有序数组 //20220319 写在前面:昨天开始恢复刷题,今天刷到这个,妈耶竟然写了我一个小时,都是因为注意力不集中,简直在浪费时间/无语,在此记录一下解法 题目描述 题目链接:点我 题目描述: 给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和

  • 有序数组中找到=num最左的位置2022-03-02 12:34:58

    public static void main(String[] args) { for (int i = 0; i < 10; i++) { test(); } } private static void test() { // 1、获取一个有序数组 int i = ThreadLocalRandom.current().nextInt(100); int[] i

  • 合并两个有序数组-882022-03-01 09:30:36

    主要考察归并排序得思想,本题方法很多 我自己写的非最优版本 public void merge(int[] nums1, int m, int[] nums2, int n) { if (n == 0) { return; } if (m == 0) { for (int i = 0; i < n; i++) { nums

  • 合并有序链表2022-02-26 20:03:00

    题干 这题,一开始想复杂了,不需要专门写一个添加数据的方法。 题目给的方法以及参数是这样的: public ListNode mergeTwoLists(ListNode list1, ListNode list2)   我们可以先声明一个节点head,这个节点的值是-1.这样就免去了判断要把list1和list2中的哪一个节点作为新的合并后的有

  • 7_88. 合并两个有序数组2022-02-25 23:36:40

    题目描述: 解题思路:(双指针法) 首先想到的是新建一个大小为(m+n)的数组,用来临时存储排好序的数组,最后将其复制到nums1中。 也考虑到是否可以原地算法,不开辟新的空间,直到看到题解,从后向前进行排序,从大到小才恍然大悟。nums1中后面的n位全是0,是可以被覆盖的。 注意:对于逆向双指针法,

  • 4.寻找两个有序数组的中位数2022-02-23 12:33:44

    题目: 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (m+n)) 。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays著作权归领扣网络所有。商业转载

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有