算法
击歌吟
这个作者很懒,什么都没留下…
展开
-
HashMap原理及实现
title: HashMap原理及实现tags: [算法与数据结构,Java,HashMap]categories: 算法与数据结构什么是hash它将一个长度为二进制通过一个映射关系转换成一个固定长度的二进制值。1.任意长度的二进制2.映射关系(哈希算法–就相当于一个大学里面的学号的一个映射规则)3.固定的二进制(哈希值–相当于我大学里面的学号)任意长度的二进制和固定长度的二进制 是一个一一对应关系固定长度的二进制就相当于一个任意长度的二进制的摘要固定长度的二进制 相当于一个.原创 2020-06-12 10:42:06 · 164 阅读 · 0 评论 -
字符串相关算法(0-1交换、字符替换和复制、交换星号、子串变位词、单词翻转 )
0-1交换把一个0-1串(只包含0和1的串)进行排序,你可以交换任意两个位置,问最少交换的次数?分析: 快排partition?最左边的那些0和最右边的那些1都可以不管o 00…0001…….0111….1伪代码实现void exchangeo1{ int answer = 0; for(int i=-,j=len-1;i<j;++i,--j){ for(;(i<j)&&(a[i]=='0');++i); f原创 2020-06-12 10:40:02 · 1202 阅读 · 0 评论 -
栈相关算法(括号匹配 )
stack堆栈是一种特殊的线性表,只允许在表的顶 端top进行插入或者删除操作,是一种操作受 限制的线性表。栈元素服从后进先出原则LIFO——Last In First Out括号匹配给定字符串,仅由"()[]{}"六个字符组成。设 计算法,判断该字符串是否有效。括号必须以正确的顺序配对,如:“()”、“()[]” 是有效的,但“([)]”无效。算法分析在考察第i位字符c与前面的括号是否匹配时:如果c为左括号,开辟缓冲区记录下来,希望c能够 与后面出现的同类型最近右括原创 2020-06-12 10:39:14 · 412 阅读 · 0 评论 -
数组、链表、斐波那契数列的递归、Reverse数组、Reverse链表、约瑟夫环问题、合并两个排好序
stdafx.h数组链表斐波那契数列的递归Reverse数组Reverse链表约瑟夫环问题合并两个排好序的链表stdafx.h// stdafx.h : 标准系统包含文件的包含文件,// 或是经常使用但不常更改的// 特定于项目的包含文件//#pragma once#include "targetver.h"#include <stdio.h>#include <tchar.h>#include <iostream>#incl.原创 2020-06-12 10:37:46 · 142 阅读 · 0 评论 -
数组相关算法(局部极小值、第一个缺失的正整数、元素最大间距离(分桶)、只出现1次的数、众数问题、前缀和的应用)
数组简介数组(array)java : [], ArrayListC++ : STL vector, []C: 只有[]理解:输入的数组通常理解为集合,我们自己可以排序,查找注意C++ STL中vector的一种实现数组下标是一种特殊的hash…做计数理解数组与map给数组“顺序”局部极小值一个给定的不包含相同元素的整数数组,每个,局部极小值的定义是一个值比左右相邻的(如果存在)都小的值,求它的一个局部最小值分析:局部最小值的存在性,全部数组的最小值显然是原创 2020-06-12 10:34:38 · 174 阅读 · 0 评论 -
链表相关算法(链表相加, 链表的部分翻转,链表划分链表划分,排序链表中去重)
链表相加给定两个链表,分别表示两个非负整数。它 们的数字逆序存储在链表中,且每个结点只 存储一个数字,计算两个数的和,并且返回 和的链表头指针如:输入:2→4→3、5→6→4,输出:7→0→8问题分析输入:2->4->3、5->6->4,输出:7->0->8因为两个数都是逆序存储,正好可以从头向 后依次相加,完成“两个数的竖式计算”。typedef struct tagSNode{ int value; tagSnode *pNext;原创 2020-06-12 10:32:55 · 129 阅读 · 0 评论 -
队列相关算法(最短路径条数问题,拓扑排序)
queue队列是一种特殊的线性表,只允许在表的前端front进行删除操作,在表的后端rear进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列元素服从先进先出原则FIFO——First In First Out最短路径条数问题给定如图所示的无向连通图,假定图中所有边的权值都为1,显然,从源点A到终点T的 最短路径有多条,求不同的最短路径的数目。算法分析权值相同的最短路径问题,则单源点Dijkstra算法退化成BFS广原创 2020-06-12 10:29:50 · 326 阅读 · 0 评论 -
九大排序算法告诉你什么是内部排序和外部排序
概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。我们通常所说的排序算法往往指的是内部排序算法,即数据记录在内存中进行排序。排序算法大体可分为两种:比较排序,时间复杂度O(nlogn) ~ O(n^2)冒泡排序选择排序插入排序归并排序堆排序快速排序非比较排序计数排序基数排序桶排序常见比较排序算法的性能:注意:排序算法的稳定性排序算法稳定性的简单形式化定原创 2020-06-12 10:25:44 · 6639 阅读 · 1 评论