数据结构
数据结构
Xxxx. .Xxxx
一个对世界蠢蠢欲动的成年人
展开
-
数据结构算法-链表(2):两个递增有序单链表,设计算法成一个递减有序的链表
两个递增有序单链表,设计算法成一个递减有序的链表原创 2022-07-23 18:34:17 · 438 阅读 · 0 评论 -
数据结构算法-链表(1):两个递增有序单链表,设计算法成一个非递减有序的链表
两个递增有序单链表,设计算法成一个非递减有序的链表原创 2022-07-23 15:49:38 · 1430 阅读 · 0 评论 -
数据结构算法(4):设计算法找出主元素,找不到返回-1
设计算法找出主元素,找不到返回-1如果一个数组A[1..n]中超过半数的元素都相同时,该数组被称为含有主元素原创 2022-07-23 14:28:39 · 401 阅读 · 0 评论 -
数据结构算法(3):设计一个时间上尽可能高效的算法,找出数组中未出现的最小正整数
设计一个时间上尽可能高效的算法,找出数组中未出现的最小正整数原创 2022-07-23 12:02:28 · 860 阅读 · 0 评论 -
数据结构算法(2):将线性表(a1,a2,a3,……,am)和(b1,b2,b3,……,bn)位置互换,得到(b1,b2,b3,……,bn,a1,a2,a3,……,am)
将线性表(a1,a2,a3,……,am)和(b1,b2,b3,……,bn)位置互换,得到(b1,b2,b3,……,bn,a1,a2,a3,……,am)原创 2022-07-23 11:00:52 · 986 阅读 · 0 评论 -
数据结构算法(1):两个递增有序表合并成一个递增有序表
两个递增有序表合并成一个递增有序表原创 2022-07-23 10:29:05 · 1798 阅读 · 0 评论 -
Letcode--35.搜索插入位置
(一)分析暴力法做题思路: 存在四种情况: ①目标值=数组内某元素,返回该元素的位置 ②目标值≠数组内任一元素,返回插入位置 ③目标值<数组内最小元素,返回0 ④目标值>数组内最大元素,返回最后的位置(nums的长度)暴力法代码class Solution {public: int searchInsert(vector<int>& nums, int target) { for (int i = 0; i < nums.si.原创 2022-05-03 12:29:37 · 253 阅读 · 0 评论 -
4.1蛮力法介绍
蛮力法概念:4.2.1 直接采用蛮力法的一般格式原创 2021-04-21 20:59:51 · 177 阅读 · 0 评论 -
3.2.2 归并排序
3.2.2 归并排序问题该方法的基本思想是:若k=2,即归并在相邻的两个有序子表中进行的,称为二路归并排序。若k>2,即归并操作在相邻的多个有序子表中进行,则叫多路归并排序。1.自底向上的二路归并排序算法例如,对于{2,5,1,7,10,6,9,4,3,8}序列,其排序过程如下图所示,图中方括号内是一个有序子序列。二路归并排序的分治策略:循环【log2n】次,length依次取1、2、…、log2n。每次执行以下步骤:① 分解:将原序列分解成length长度的若干子序列。② 求原创 2021-04-21 20:55:59 · 559 阅读 · 0 评论 -
3.2.1 快速排序
## 3.2求解排序问题快速排序该方法的基本思想是:1.先从数列中取出一个数作为基准数。2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。3.再对左右区间重复第二步,直到各区间只有一个数。分治法具体操作:int Partition(int a[],int s,int t) //划分算法{ int i=s,j=t; int tmp=a[s]; //用序列的第1个记录作为基准 while (i!=j) //从序列两端交替向中间扫描,直至i=j为止原创 2021-04-21 19:27:33 · 230 阅读 · 0 评论 -
3.1 分治法概念
3.1分治法概述分治法概念 若该问题可以容易地解决比如说规模n较小)则直接解决 否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地解这些子问题,然后将各子问题的解合并得到原问题的解。分治法特征分治法一般算法设计模式:在用分治法设计算法时,最好使子问题的规模大致相同。换句话说,将一个问题分成大小相等的k个子问题的处理方法是行之有效的。 k=1称为减治法;k=2称为二分法3.2求解排序问题快速排序该方法的基本思想是:1.先从数列中取出一个数作为原创 2021-04-18 16:31:04 · 298 阅读 · 0 评论 -
求未知数
编写一个程序,求这样的4位数:该4位数的千位上的数字和百位上的数字都被擦掉了,知道十位上的数字是1、个位上的数字是2,又知道这个数如果减去7就能被7整除,减去8就能被8整除,减去9就能被9整除。解设这个数为ab12,则n=1000×a+100×b+10+2,且有0<a≤9,0≤b≤9。采用穷举法求解,其循环格式如下:#include<stdio.h>int main(){ int n,a,b; for(a=1;a<=9;a++) for(b=0;b<=9;b++原创 2021-04-21 19:07:20 · 1266 阅读 · 0 评论 -
求完全数
编写一个程序,输出2~1000的所有完全数。所谓完全数是指这样的数,该数的各因子(除该数本身以外)之和正好等于该数本身。例如:6=1+2十328-1+2十4+7+14解法:解先考虑对于一个整数m,如何判断它是否为完全数。从数学知识可知:一个数m的除该数本身以外的所有因子都在1~m/2区间。若算法中要取得因子之和,只要在1~m/2区间找到所有整除m 的数,将其累加起来即可。如果累加和与m本身相等,则表示m是一个完全数,可以将m输出。#include<stdio.h>int main()原创 2021-04-21 11:32:28 · 911 阅读 · 0 评论