
算法
文章平均质量分 68
Stark_JC
这个作者很懒,什么都没留下…
展开
-
Prim算法--c++
prim算法数据结构c++最小生成树原创 2018-03-16 10:02:40 · 739 阅读 · 0 评论 -
大数运算
乘法数组保存值,最好逆向保存。一个数的第i 位和另一个数的第j 位相乘所得的数,累加到结果的第i+j 位上。这里i, j 都是从右往左,从0 开始数。ans[i+j]=a[i]∗b[j];ans[i+j]=a[i]∗b[j];ans[i+j] = a[i]*b[j];数组里保存原始值,最后再处理进位。例题描述: 求2^N的值,其中512<=N<=1024。...原创 2018-09-16 21:15:47 · 316 阅读 · 0 评论 -
回溯法
回溯法一般思路:void func(层数){ if(满足结束条件){ 输出; } else{ for i in 当前层数可行解{ func(层数+1); } }}n皇后问题代码#include "stdafx.h"#include <vector&原创 2018-09-16 21:15:31 · 427 阅读 · 0 评论 -
数据结构之排序(3)——选择排序
选择排序的基本思想是:每一趟(如第i趟)在后面n-i+1个待排序元素中选择关键字最小的元素,作为有序子序列的第i个元素,执行n-1趟,最后那个不用选了。 主要包括:简单选择排序和堆排序。简单选择排序void selectSort(int arr[], int n){ int i, j, min; for (i = 0; i < n; ++i){原创 2018-04-12 10:01:26 · 506 阅读 · 0 评论 -
数据结构之排序(2)——交换排序
冒泡排序快速排序各算法复杂度表根据两个元素的比较结果然后进行交换,主要是冒泡排序和快速排序。冒泡排序基本思想:若为升序,则从后往前通过两两交换将无序区最小的元素放到有序区最后一位,无序区长度每次少1,最多n-1次排完。 void bubbleSort(int arr[], int n){ int i, j; bool flag; for (i = 0; i <原创 2018-04-11 19:59:20 · 354 阅读 · 0 评论 -
数据结构之排序(1)——插入排序
直接插入排序不带哨兵带哨兵拓展元素为结构时折半插入排序希尔排序各算法复杂度表插入排序主要包括三个:直接插入排序、折半插入排序和希尔排序。基本思想都是: 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。下面依次进行讲解并编程实现。直接插入排序主要思想: 1. 循环i从1~n-1,每次循环执行步骤2-4。 2. 查找arr[i]在arr[原创 2018-04-11 16:34:36 · 748 阅读 · 0 评论 -
PAT甲级练习题(持续更新中...)
PAT考试c++数据结构算法原创 2018-03-19 21:58:13 · 868 阅读 · 0 评论 -
数据结构之排序(5)——外部排序
外部排序堆胜者树败者树置换-选择排序最佳归并树外部排序内存有限,不能一次将数据全部导入内存排序,于是有了外部排序。例如,一个含有2000个记录的文件,每个磁盘可容纳250个记录,则该文件包含8个磁盘块。 1. 先用内部排序方法,每次读一个磁盘块,排完序后写到文件,共需8次读和8次写,生成8个有序文件。 2. 然后作二路归并排序,每次往内存读入两个磁原创 2018-04-16 13:07:57 · 1092 阅读 · 0 评论 -
数据结构之排序(4)——归并排序和基数排序
归并排序基数排序各算法复杂度表归并排序基本思想:分而治之,然后将有序子表合并。算法思路: 1. 将两段相邻有序表放到临时数组中; 2. 两个值i,j分别记录当前读取位子; 3. 读取当前位子值并比较,小的放到数组中; 4. 如果i或者j超过表长,则将剩下的直接复制过去。int n = 8;int *b = (int *)malloc((n +原创 2018-04-14 13:50:55 · 1266 阅读 · 0 评论 -
c++ 大小写转换
char 字符大小写转换#include &lt;iostream&gt;using namespace std;int main(){ char c = 'e'; c = toupper(c);//并不会直接覆盖 cout &lt;&lt; c; system("pause"); return 0;}string 字符串大小写转换#i...原创 2018-09-16 21:17:35 · 590 阅读 · 1 评论