算法笔记
森先生
Stay real, love job, life, family.
展开
-
高斯-赛戴尔(Gauss-Seidel)迭代法及算法实现
1、高斯-赛戴尔迭代法的定义以及表达形式以下列方程组为例:在雅克比迭代法中,并没有对新算出的分量进行充分利用,对上式第二个方程组,第一个式子算出的x值立即投入第二个方程里,第二个式子的结果算出后投入第三个方程中,直到第n个方程。根据这种思路建立的迭代格式,就是高斯-赛戴尔迭代法。2、简单例子...原创 2018-05-11 20:26:00 · 65572 阅读 · 14 评论 -
粒子群优化算法(PSO)
%% 最近写的粒子群的论文,再重新巩固一下 推荐一个优化算法代码网址:http://www.Hvass-Labs.org/1 研究背景粒子群算法的发展过程。粒子群优化算法(Partical Swarm Optimization PSO),粒子群中的每一个粒子都代表一个问题的可能解,通过粒子个体的简单行为,群体内的信息交互实现问题求解的智能性。由于PSO操作简单、收敛速度快,...原创 2018-06-04 20:07:09 · 343565 阅读 · 46 评论 -
C++实现七种经典排序算法
利用C++实现七种常见的排序算法:具体的排序方法如下所示:(1)冒泡排序基本思想:比较相邻的两个数,如果前者比后者大,则进行交换。每一轮排序结束,选出一个未排序中最大的数放到数组后面。常见冒泡排序算法如下所示:void bubblesort(int *arr,int n){ for (int i = 0; i < n; i++) { for (int j = ...原创 2019-04-08 19:12:27 · 3349 阅读 · 1 评论 -
LeetCode 26 重复数组,重复字符串
去除重复的数组元素和字符串元素:首先,对于重复的数组元素,问题描述:给定一个已排序的数组号,删除重复项,使每个元素只出现一次,并返回新的长度。不要为另一个数组分配额外的空间,您必须使用O(1)额外内存修改输入数组。考虑如下方法解决问题:int removeDuplicate_int(vector<int> nums){ int len = nums.size()...原创 2019-04-08 20:32:50 · 368 阅读 · 0 评论 -
LeetCode 200 Number of Islands
题目要求:给定一个“1”(陆地)和“0”(水域)的二维网格地图,计算岛屿的数量。岛屿被水环绕,通过水平或垂直连接相邻的陆地而形成。你可以假设网格的四个边都被水包围着。例如:Input:11110110101100000000Output:1考虑如下方法解决问题:(1)DFS方法采用深度优先遍历算法,首先得到n,m也就是网格的横纵长度,从而进行遍历;ret是岛...原创 2019-04-08 21:33:44 · 143 阅读 · 0 评论 -
字符串反转和数组反转
首先是字符串的反转,关键要用两个位置来进行交换,i 从前往后,j 是从后往前,遍历一半,进行交换。char * reverse_char(char *a){ int i =0,j; char t; cout<<"请输入字符串:"<<endl; cin.getline(a,50,'\n'); for (i = 0,j = strlen(a)-1; i &l...原创 2019-04-09 17:24:13 · 1109 阅读 · 0 评论