数据结构与算法
C、Go
局部最优解
间歇性努力 持续性混吃等死
展开
-
棋盘覆盖问题
问题描述1、在一个2^k^×2^k^个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为特殊棋盘。如下为一个k=2的棋盘,其有2^k^×2^k^=4×4=16个不同的特殊棋盘2、要使用图示所示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖例如,很容易得出在2k×2k个方格组成的特殊棋盘中,需要用(2k×...原创 2020-04-12 15:35:04 · 1007 阅读 · 0 评论 -
Hanoi问题的分析
问题描述设A、B、C为三个塔座,一开始A塔座上有n个自上而下、由小到大按顺序(可编号1,2,3...n)叠放在一起的圆盘,需要把A塔座上的盘全部移动到C塔座上,并且需要保持原有的顺序,但是要求每次只能移动一个盘子,并且在移动过程中A、B、C都必须始终保持小盘在上,大盘在下,操作过程盘子可置于A、B、C任一塔座上问题分析...原创 2020-03-26 11:40:09 · 231 阅读 · 0 评论 -
快速排序
基本思想快排是对冒泡排序的一种改进,是C.R.A.Hoare于1962年提出的一种划分交换排序,采用了分治的策略,通常称为分治法基本思想:1、选取一个值为基准值point2、将小于或等于point的值放于左边3、将大于point的值放于右边4、分别对左右子序列重复前三个步骤,直到各子序列只有一个数上述图实例为快速的第一轮过程,显然是挖坑填数+分治法来实现整个快速排序过程,以序列为...原创 2020-03-21 16:54:08 · 161 阅读 · 0 评论 -
Permutations
Given a collection of distinct integers, return all possible permutations.Example:Input: [1,2,3]Output: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ]原创 2020-03-05 16:18:19 · 334 阅读 · 0 评论 -
冒泡排序
2019-8-31冒泡排序手写的笔记没带上,遇到冒泡排序的用法开始犹豫了想了很久,的确很不方便,于是把它的思路重新详细写下来巩固一下记忆。冒泡排序的步骤:走访数列,走访时比较相邻两个元素,若元素顺序错误,则需要交换N个数的数列,需要走访N-1轮走访一轮后,最大的数会经过交换排在数列的末尾(假设数列按升序排序)下一轮走访,去除末尾最大数,对前面的数进行类似的走访和比较重复走访,直至排...原创 2019-08-31 08:14:59 · 140 阅读 · 0 评论 -
Maximum Subarray
Maximum SubarrayGiven an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.Input: [-2,1,-3,4,-1,2,1,-5,4],Output: 6Exp...原创 2020-02-19 21:40:55 · 161 阅读 · 0 评论 -
二分查找
二分(折半)查找算法算法要求:要求序列是有序的(升序或者降序),并且查找目标值只有一个x核心思想:将n个元素分成大致相等的两部分,取中间的值num[n/2]与x比较,若x=num[x/2],则找到,算法终止;若x<num[x/2],则在num[x/2]的左半边部分继续搜寻x,寻找中间值进行比较,以此类推,直到找到x;若x>num[x/2],则在num[x/2]的右半部分继续搜寻,同...原创 2020-01-18 22:03:54 · 220 阅读 · 0 评论 -
串的定长顺序存储表示
编程实现串的基本操作:求长度、串的比较、串的连接、取子串、模式匹配等,并完成调用采用功能菜单表现形式完成功能的调用程序运行截图:程序源代码:/* environment:Dev-C++ author:monkey-z time:2019-11-29 */#include <stdio.h>#include <iostream&...原创 2019-11-30 10:05:51 · 435 阅读 · 1 评论 -
数据结构之链表
2019-8-30链表1、表的链式存储—链表链表的结点结构值域链域值域(数据域):存储表元素值链域(指针域):存储后继结点的存储地址(单向链表),指针域中存储的信息称为指针或链链式存储结构图:首指针(表头指针):指向链表的第一个结点的指针变量,其值为首结点的存储地址表尾结点(最后一个结点):由于最后一个数据元素没有直接后继,链域值为空(NULL)链表就是表头...原创 2019-09-18 16:52:37 · 1517 阅读 · 1 评论 -
数据结构malloc、free使用
2019-9-2malloc函数①关于malloc函数原型:#include<stdlib.h>void *malloc(unsigned long size);头文件: malloc是一个系统函数,调用它的时候必须包含头文件 <stdlib.h>功能: 内存的动态存储空间即堆中分配一个长度为size的连续空间。返回值: 函数的返回值是一个指向分配内存起始地...原创 2019-09-03 18:21:19 · 3371 阅读 · 0 评论 -
数据结构之顺序存储
2019-7-27数据结构之队列1、线性表:由同类型数据元素构成有序序列的线性结构表中元素个数称为线性表的长度线性表没有元素时称为空表表起始位置称为表头,结束位置称为表尾线性表顺序存储的实现:typedef struct LNode *List;struct LNode{ ElementType Data[MAXSIZE]; int Last;//...原创 2019-08-29 17:21:58 · 2995 阅读 · 0 评论