
数据结构/算法
文章平均质量分 78
少侠Smile丶
游戏开发攻城狮知识记录手册
展开
-
python实现二分查找
python实现二分查找# -*- coding:utf-8 -*-""" 二分查找升序数组内某个值"""import osimport sysclass Solution(object): def search(self, nums, left, right, target): #找完了 return -1 if left > right: return -1 #就剩一个了,直接判断原创 2020-10-25 15:03:09 · 231 阅读 · 0 评论 -
链表面试题思路整理(图解)
1】返回单链表倒数第K个元素思路:快慢指针,快指针先走K,然后一起走,快指针=null的时候,慢指针指向的就是2】判断两个链表是否相交,并返回交点思路1:求出两个链表的长度,计算长度差m,长的先走m,然后一起走,如果相等则相交并第一个就是交点。思路2:链表a和链表b一起走,a走完自己以后走b,b走完自己以后走a。如果相等则相交并第一个就是交点。3】判断链表是否有环,环的长度,环的入口思路:快慢指针, 快指针每次走2格,慢指针每次都1格,如果相遇则必有环。如果再次相遇,中间慢指针走过的路程就原创 2020-08-30 09:19:06 · 212 阅读 · 0 评论 -
排序算法--堆排序
推荐讲解很好的文章https://www.cnblogs.com/chengxiao/p/6129630.html堆排序时间复杂度O(nlogn) 要进行n-1轮交换位置调整堆,每次调整要执行约logn次堆排序空间复杂度O(1) 因为堆排序本质是选择排序,数组内部数据交换,只是临时交换数据的内存。...原创 2020-08-13 20:46:22 · 158 阅读 · 0 评论 -
C# List<>.Sort() 排序的底层实现原理
首先,C# List<>.Sort() 排序的底层实现原理就是快速排序 + 堆排序(.net 4.5用的内省排序)。大佬可以 return了。接下来,让我们一一还原案发现场。源码干货预警,头大!!!!!// 1,看到我们调用的Sort方法public void Sort(IComparer<T> comparer){ Sort(0, Count, comparer);}// 2,进入Sort(), 这里只关注倒数第二行,调用了Array.Sort()public原创 2020-08-13 14:53:42 · 3759 阅读 · 0 评论 -
排序算法--归并排序的两种方法
用递归实现:private void MergeSort(int[] arr, int[] tempArr, int start, int end){ if(start >= end) return; // 求出中间的索引 int mid = ((end - start) >> 1) + 1; // 区分左边和右边 int start1 = start, end1 = mid; int start2 = mid + 1, end2 = end; // (先分解原创 2020-08-13 11:04:14 · 744 阅读 · 0 评论 -
排序算法--快速排序的两种遍历方法(C#)
快速排序简称快排,快速排序的平均时间复杂度为O(nlogn),空间复杂度O(logn),比起时间复杂度O(n^2)如冒泡排序,省了非常多的运行时间,故称快速排序。快速排序的思路是分治法。单边和双边循环法 仅仅是找到每次递归的确定基准值的方式不一样单边循环法: 一个指针代表边界索引,从头开始,将小于基准值的放入左边,并更新指针//单边和双边循环 仅仅是找到每次递归的基准值的方式不一样private int Partition(int[] arr, int start, int end){ //分原创 2020-08-10 20:51:53 · 769 阅读 · 0 评论 -
数据结构与算法--浅析动态规划
目录简述何为动态规划动态规划问题的适用条件动态规划都有哪些类型呢?解题步骤案例实战入门案例简单案例--爬楼梯总结简述最近看了一些动态规划的内容,趁着周末,来总结一些,揭一揭这神秘的面纱。动态规划程序设计是对解最优化问题的一种途径、一种方法。因此读者在学习时,除了要对基本概念和方法正确理解外,必须具体问题具体分析处理,以丰富的想象力去建立模型,用创造性的技巧去求解。我们也可以通过对若干有代表性...原创 2020-03-15 10:52:59 · 414 阅读 · 0 评论 -
算法的时间复杂度和空间复杂度-总结(转载)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.youkuaiyun.com/zolalad/article/details/11848739算法的时间复杂度和空间复杂度-总结 通常,对于一个给定的算法,我们要做 两项分析。第一是...转载 2019-09-18 11:01:09 · 446 阅读 · 0 评论