
数据结构与算法
weiabc
外行学编程
展开
-
记忆化搜索
【代码】记忆化搜索。原创 2024-12-14 00:22:17 · 122 阅读 · 0 评论 -
递归的入门
递归在软件开发中,递归是经常被使用的一种编程技巧,但是递归又是非常难理解的,这篇文章笔者总结了下递归难理解的原因,然后针对每个原因来讲解怎么样去理解和使用递归https://mp.weixin.qq.com/s/ct5l2_YMNCYIqtQZpBN1YA学习以上内容的笔记:一、一般函数的调用利用的是栈:二、方法调用自己,一定要有终止条件,否则栈溢出三、压栈、出栈的过程上面是压栈的过程,下面是压栈、出栈的过程,更好的理解两个代码块的执行顺序,自己操作如下:四...原创 2022-04-19 00:28:20 · 306 阅读 · 0 评论 -
OJ题库汇总
信息学题库 - 计蒜客计蒜客OI题库致力于为参加noi、noip、信息学竞赛的选手提供优秀的Online Judge系统。它拥有海量题目、快速准确的在线测评,是学习信息学的理想OJ。https://nanti.jisuanke.com/oi信息学奥赛一本通(C++版)在线评测系统http://ybt.ssoier.cn:8088/C语言网 - 编程入门学习 - 实用的编程在线学习网站C语言网(www.dotcpp.com)不仅提供C语言,还包括C++、java、算法与数据结构等课程在内的各种入门教程、视频录原创 2022-01-27 20:46:17 · 4805 阅读 · 0 评论 -
2021-10-05 两数之和Python版
def twoSum(nums, target): sz = len(nums) for i in range(sz): for j in range(i): if nums[i] + nums[j] == target: return {i, j}def twoSumDict(nums, target): # 用len()方法取得nums列表长度 n = len(nums) # 创建一个.原创 2021-10-05 23:55:36 · 71 阅读 · 0 评论 -
2021-10-05 C++反转串的多种方法
#include <iostream>#include <vector>#include <algorithm>#include <string>using namespace std;void reverse1(char *ch, int n){ int low = 0, high = n-1; while(low < high) { swap(ch[low],ch[high]); low++; high--; }.原创 2021-10-05 22:14:17 · 140 阅读 · 0 评论 -
2021-08-17 线性查找与二分查找
def liner_search(li, val): for ind, v in enumerate(li): if v == val: return ind else: return Nonedef binary_search(li, val): left = 0 right = len(li) - 1 while left <= right: # 候选区有值 mid = (le.原创 2021-08-17 20:17:44 · 132 阅读 · 2 评论 -
BinarySearch二分查找
前提元素要有序的情况下def liner_search(li, val): for ind, v in enumerate(li): if v == val: return ind else: return Nonedef binary_search(li, val): left = 0 right = len(li) - 1 while left <= right: # 候选区有值原创 2021-08-12 22:46:11 · 388 阅读 · 1 评论 -
2021-06-09习题6-4 使用函数输出指定范围内的Fibonacci数 (20 分)
习题6-4 使用函数输出指定范围内的Fibonacci数 (20 分)本题要求实现一个计算Fibonacci数的简单函数,并利用其实现另一个函数,输出两正整数m和n(0<m≤n≤10000)之间的所有Fibonacci数。所谓Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列。函数接口定义:int fib( int n );void PrintFN( int m, int n );其中函数fib须返回第n项Fibonacci数;函数PrintFN要在原创 2021-06-09 00:31:08 · 255 阅读 · 0 评论 -
2021-05-30冒泡排序法及其递归版
//冒泡排序#include <stdio.h>#include <stdlib.h>//采用两层循环实现//参数arr是待排数组的首地址,n是元素的个数void bubbleSort(int arr[], unsigned int n){ if (n < 2) { return; //数组小于2个元素不用排序 } for (int i = 0; i < n; i++) //i用来控制每趟的冒泡 { for (int j = .原创 2021-05-30 14:08:50 · 138 阅读 · 0 评论 -
2021-05-27桶排序
// 桶排序.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//2021-05-27#include <iostream>using namespace std;int main(){ int array[5] = {2,3,1,4,99};//要排序的数据 int n = 5; int arrayTemp[100] = {0};//桶数据元素初始化为0 for (int i = 0; i < n; i++) { arrayTemp.原创 2021-05-27 22:42:53 · 60 阅读 · 0 评论 -
2021-05-27gnomesort 地精排序、傻瓜排序、矮子排序
list = [1, 4, 6, 5, 2, 3]def gnomesort(seq): i = 0 while i < len(seq): # 进入一个循环 if i == 0 or seq[i - 1] <= seq[i]: #如果站在第一个元素 或 前一个元素小于当前元素 i++ i += 1 else: #否则 .原创 2021-05-27 22:35:06 · 143 阅读 · 0 评论