当前位置:网站首页>Data dictionary in C #
Data dictionary in C #
2022-07-06 10:58:00 【Dotnet cross platform】
Preface
Surfing the Internet as usual this morning , I saw an interview question chatting in the wechat group of maijiage , It's interesting , Here is a brief share of the conclusions Dictionary Dictionaries .
Yes 50w individual int Type of number , Now we need to judge whether there are duplicate numbers , Please briefly explain .
If this topic let me do , The first feeling may be directed to two for loop , Simply make a judgment and solve . But I saw the discussion of several big guys , I found that my knowledge is shallow .
Is this question about the application of business code cycle ? Definitely not .
We know , In verifying a piece of code or a program algorithm, the perfect indicators are space complexity and time complexity . Judge by these two indicators .
Spatial complexity :
It refers to the execution of an algorithm program , How much storage capacity is temporarily occupied per unit time . use S(n)=O(f(n)) To express .
Time complexity :
It refers to the execution of an algorithm program , How much time will it take .
In general , The number of times the basic operations are repeated in the algorithm is the scale of the problem n A function of , use T(n) Express , If there is an auxiliary function f(n), Properly n Approaching infinity ,T(n)/f(n) The limit value of is a constant not equal to zero , said f(n) yes T(n) Functions of the same order of magnitude of , Write it down as T(n)=O(f(n)), be called O(f(n)) Time complexity of the algorithm .
For example, the time complexity of insertion sorting is O(n^2), The space complexity is O(1).
The advantages and disadvantages of an algorithm are mainly measured from two aspects: the execution time of the algorithm and the required storage space .
During the discussion in the Group , There is an array array, Key value pair , And data dictionary Dictionary( A key value pair ). Finally, I feel like using Dictionary Store this 50w individual int Data of type , Use it key perhaps value To determine if there are duplicate values .
Now that I see this , Today we will simply review Dictionary, See what charm it has .
Dictionary<TKey,TValue> Dictionaries
according to MSDN Records on , Say it is a set of keys and values . Provide a set of keys to a set of values mapping . Each addition to the dictionary contains a value and its associated key . The speed of retrieving values using its keys very fast , near O(1).
Dictionary<TKey,TValue> This class is implemented as a hash table , The speed of retrieval depends on the quality of the hash algorithm for the specified type TKey.
Other features are briefly summarized as follows
Must contain a namespace System.Collection.Generic
Dictionary Every element in it is a key value pair
The key must be unique , The value does not need to be unique
Keys and values can be of any type
The time complexity of reading a value through a key is close to O(1), Search speed is very fast , than list Wait a lot faster
The partial order between key value pairs can not be defined
You can search by key value 、 Insert 、 Delete a key value pair , It is very troublesome to implement these with arrays
Here is about Dictionary Some of CRUD operation .
Definition dictionary 、 Add key value 、 Value 、 Change value 、 Traverse key、 Traverse value、 Remove elements 、 Empty all elements
// Definition
static Dictionary<int, string> ahuiInfo = new Dictionary<int, string>();
static void Main(string[] args)
{
// Add key value
ahuiInfo.Add(1," A Hui ");
ahuiInfo.Add(2, " Arabinase ");
ahuiInfo[2] = " Al I "
// Value
var name=ahuiInfo[0].ToString();
Console.WriteLine(""+name
// Modified value
ahuiInfo[0] = " aunt ";
Console.WriteLine("" + ahuiInfo[0].ToString()
// Traverse key and value
foreach (var key in ahuiInfo.Keys)
{
Console.WriteLine(""+key.ToString());
foreach (var value in ahuiInfo.Values)
{
Console.WriteLine(" "+value.ToString());
// Ergodic dictionary
foreach(KeyValuePair<int ,string> kvp in ahuiInfo)
{
Console.WriteLine("key="+kvp.Key+",value="+kvp.Value);
// Remove elements
ahuiInfo.Remove(0
// Judge whether the key exists
if (ahuiInfo.ContainsKey(0))
{
Console.WriteLine("true");
}
else
{
Console.WriteLine("false");
}
}
}
remarks
Life is short , I don't want to pursue what I can't see , I just want to catch what I can see .
Originality is not easy. , Pay attention .
I am a A Hui , Thank you for reading , If it helps you , Please like it 、 forward thank you .
边栏推荐
- The virtual machine Ping is connected to the host, and the host Ping is not connected to the virtual machine
- MySQL22-逻辑架构
- [reading notes] rewards efficient and privacy preserving federated deep learning
- Global and Chinese market of wafer processing robots 2022-2028: Research Report on technology, participants, trends, market size and share
- MySQL flush operation
- A brief introduction to the microservice technology stack, the introduction and use of Eureka and ribbon
- MySQL28-数据库的设计规范
- Unicode decodeerror: 'UTF-8' codec can't decode byte 0xd0 in position 0 successfully resolved
- API learning of OpenGL (2003) gl_ TEXTURE_ WRAP_ S GL_ TEXTURE_ WRAP_ T
- Ansible practical Series II_ Getting started with Playbook
猜你喜欢
Mysql22 logical architecture
La table d'exportation Navicat génère un fichier PDM
Swagger、Yapi接口管理服务_SE
Pytorch RNN actual combat case_ MNIST handwriting font recognition
【博主推荐】C#生成好看的二维码(附源码)
MySQL主从复制、读写分离
Case identification based on pytoch pulmonary infection (using RESNET network structure)
【博主推荐】SSM框架的后台管理系统(附源码)
Just remember Balabala
MySQL31-MySQL事务日志
随机推荐
@controller,@service,@repository,@component区别
CSDN问答标签技能树(五) —— 云原生技能树
How to find the number of daffodils with simple and rough methods in C language
CSDN Q & a tag skill tree (V) -- cloud native skill tree
Global and Chinese market of transfer switches 2022-2028: Research Report on technology, participants, trends, market size and share
Mysql23 storage engine
解决扫描不到xml、yml、properties文件配置
Pytoch LSTM implementation process (visual version)
[paper reading notes] - cryptographic analysis of short RSA secret exponents
CSDN question and answer tag skill tree (II) -- effect optimization
CSDN问答模块标题推荐任务(一) —— 基本框架的搭建
MNIST implementation using pytoch in jupyter notebook
35 is not a stumbling block in the career of programmers
Emotional classification of 1.6 million comments on LSTM based on pytoch
CSDN问答标签技能树(二) —— 效果优化
Invalid global search in idea/pychar, etc. (win10)
Navicat 導出錶生成PDM文件
虚拟机Ping通主机,主机Ping不通虚拟机
Idea import / export settings file
【博主推荐】C# Winform定时发送邮箱(附源码)