草庐IT

【高阶数据结构】B树

文章目录一、B-树1.常见的搜索结构2.B树概念3.B-树的查找4.B-树的插入分析二、B+树和B*树1.B+树2.B*树三、B-树的应用1.索引2.MySQL索引简介2.1MyISAM2.2InnoDB一、B-树1.常见的搜索结构种类数据格式时间复杂度顺序查找无要求O(N)二分查找有序O(log2N)二叉搜索树无要求O(N)二叉平衡树(红黑树和AVL树)无要求O(log2N)哈希无要求O(1)以上结构适合用于数据量相对不是很大,能够一次性存放在内存中,进行数据查找的场景。如果数据量很大,比如有100G数据,无法一次放进内存中,那就只能放在磁盘上了,如果放在磁盘上,有需要搜索某些数据,那么如果

Trie(字典树/前缀树)

字典树/前缀树Trie(发音类似“try”)或者说前缀树(字典树)是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。主要思想是利用字符串的公共前缀来节约存储空间。很好地利用了串的公共前缀,节约了存储空间。字典树主要包含两种操作,插入和查找。比如,我们要怎么用树存下单词"abc",“abb”,“bca”,"bc"呢?见图在图中,红点代表有一个以此节点为终点的单词。然后,我们如果要查找某个单词如s=“abc”,就可以这样在这里,s=“abc”的每一个字母都在树中被查到了,并且最后一个点是红色代表有一个在此结束的单词,查询成功。而s=

vscode拉取git代码到本地提示 在签出前,请清理存储库工作树

最近使用vscode拉取git代码到本地提示“在签出前,请清理存储库工作树”,具体如图:一、原因分析原因很简单,就是因为本地代码和git远程库代码存在冲突,也就是你改的文件,别人也做了修改,并且别人先于你提交了,当你再去拉取时就会发现如上提示,导致拉取失败。二、解决办法操作原理:就是将本地变更的代码stash起来,那么本地的代码就是没有更改的,此时就可以拉取远程仓库最新的代码了,拉取完成后再把本地的代码放出来即可。2.1、命令行操作#储藏gitstash#拉取gitpull#弹出储藏gitstashpop2.2、界面化操作1、储藏本地代码我们需要先把本地修改的代码储藏起来,具体操作就是如下图:

mobile - BuildContex + 小部件树

我正在关注flutter'sdocumentationabouttheBuildContextclass因为我不清楚如何以及为什么要使用这个类。Widgetbuild(BuildContextcontext){//here,Scaffold.of(context)returnsnullreturnScaffold(appBar:AppBar(title:Text('Demo')),body:Builder(builder:(BuildContextcontext){returnFlatButton(child:Text('BUTTON'),onPressed:(){//here,Sca

mobile - BuildContex + 小部件树

我正在关注flutter'sdocumentationabouttheBuildContextclass因为我不清楚如何以及为什么要使用这个类。Widgetbuild(BuildContextcontext){//here,Scaffold.of(context)returnsnullreturnScaffold(appBar:AppBar(title:Text('Demo')),body:Builder(builder:(BuildContextcontext){returnFlatButton(child:Text('BUTTON'),onPressed:(){//here,Sca

flutter - BottomNavigatonBar 的 onTap(index) 方法上的 SetState() 不会重建小部件树

我正在尝试将webview_flutterWebView连接到BottomNavigationBar。我希望在点击选项卡时使用新URL重新加载View。在onTap回调我将_currentUrl更新为新的url并使用新的选项卡索引调用设置状态。为什么标签栏正在更新但网页View没有重建?我错过了什么?classWebViewAppextendsStatefulWidget{@overrideStatecreateState(){returnWebViewState();}}classWebViewStateextendsState{int_currentTabIndex=0;Strin

flutter - BottomNavigatonBar 的 onTap(index) 方法上的 SetState() 不会重建小部件树

我正在尝试将webview_flutterWebView连接到BottomNavigationBar。我希望在点击选项卡时使用新URL重新加载View。在onTap回调我将_currentUrl更新为新的url并使用新的选项卡索引调用设置状态。为什么标签栏正在更新但网页View没有重建?我错过了什么?classWebViewAppextendsStatefulWidget{@overrideStatecreateState(){returnWebViewState();}}classWebViewStateextendsState{int_currentTabIndex=0;Strin

flutter - InheritedWidget 在小部件树 Flutter 中将数据作为空值提供

我正在尝试将数据从一个小部件传递到树下的另一个小部件。这是我从一个屏幕导航到另一个屏幕的代码:finalpage=LanguagePreferenceProvider(child:UserNameScreen(),language:_currentNationality,);navigate(context,page);navigate()方法:voidnavigate(BuildContextcontext,Widgetpage){Navigator.pushReplacement(context,PageRouteBuilder(pageBuilder:(context,anim1

flutter - InheritedWidget 在小部件树 Flutter 中将数据作为空值提供

我正在尝试将数据从一个小部件传递到树下的另一个小部件。这是我从一个屏幕导航到另一个屏幕的代码:finalpage=LanguagePreferenceProvider(child:UserNameScreen(),language:_currentNationality,);navigate(context,page);navigate()方法:voidnavigate(BuildContextcontext,Widgetpage){Navigator.pushReplacement(context,PageRouteBuilder(pageBuilder:(context,anim1

Android Studio查看第三方库依赖树

在Android开发过程中,我们或多或少都会引入第三方库,引入的库越多,越容易产生库之间的依赖冲突,所以我们今天一起来了解AndroidStudio查看第三方库依赖树。下面就拿我遇到的问题还原一下:之前接人容联客服系统的时候,集成完成后进入客服页面发生闪退,我们回顾一下错误信息:我们关键看一下报错代码:java.lang.NoSuchMethodError:Novirtualmethodinto(Landroid/widget/ImageView;)Lcom/bumptech/glide/request/target/Target;inclassLcom/a/a/i;oritssupercla