![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
jiaojinlin
这个作者很懒,什么都没留下…
展开
-
字符串中查找子串,并返回子串相对字符换的位置
int FindSubstring(const char* all, const char* sub){ int all_len = strlen(all); int sub_len = strlen(sub); int i = 0, j = 0; for (;i<all_len;++i) { if (all[i] == sub[0]) { for (j=1; j...原创 2019-01-24 21:02:06 · 713 阅读 · 0 评论 -
判断一个十位数是不是回文数
回文数的特点是,若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。12321是回文数,1233不是bool IsPlaindrome(int num){ std::vector<int> tmp; int last = num % 10; int remind = num; while (remind>0) { tmp.push_back(l...原创 2019-01-24 20:48:47 · 283 阅读 · 0 评论 -
求二叉树节点值的和
struct node{ node* left; node* right; int value; node(int v):value(v),left(nullptr),right(nullptr){}};int sum(const node* root){ if (root != nullptr) { if (root->left == nullptr &&...原创 2019-01-24 21:54:08 · 4779 阅读 · 0 评论 -
分治算法找假币问题
int CheckMoney(int arr[], int left, int right){ int sum1=0, sum2=0, sum3=0; if ((right-left+1)%2 == 0) //偶数 { if (left + 1 == right) { if (arr[left] < arr[right]) { return left;...原创 2019-01-25 11:34:37 · 5080 阅读 · 1 评论 -
排序---冒泡排序
基本思路:通过相邻数据的交换来达到排序的目的排顺流程:对数组的各数据,依次比较相邻的两个元素的大小 如果前面的数据大于后面的数据就交换位置。经过第一轮可以把最大值求出来,排在最后端 然后,再以同样的方法把剩下的元素进行比较,最后便可以得到从小到大的排好序的数组void BubbleSort(int* arr, int len){ for (int i=0; i<len...原创 2019-01-25 12:38:40 · 124 阅读 · 0 评论 -
排序----插入排序
插入排序算法基本思路:首先对前两个数据进行大小比较 接着从第三个数与拍好的前两个数进行比较,将第三个数插入到合适的位置 不断重复上述过程,直到把最后一个元素插入到合适的位void InsertSort(int *arr, int len){ for (int i=1; i<len; ++i) { int tmp = arr[i]; for (int j=i-1; j...原创 2019-01-29 11:54:17 · 82 阅读 · 0 评论 -
排序-----选择排序
选择排序算法思想:首选从数组中选择最小的一个元素,将其和第一个位置的数据交换 接着从n-1个数据中选择次小的一个元素,将其和第二个位置交换元素 不断重复,知道最后两个元素交换,完成排序void SelectSort(int *arr, int len){ for (int i=0; i<len; ++i) { for (int j=i+1; j<len; ++j)...原创 2019-01-29 12:00:56 · 90 阅读 · 0 评论