简单一些算法
来源:互联网 发布:vm优化设置 编辑:程序博客网 时间:2024/06/14 19:42
#include<iostream>using namespace std;void move(char from, char to){ cout << from << "---->" << to << endl;}void haoi(int n, char a, char b, char c){ if (1 == n) { move(a, c); } else { haoi(n - 1, a, c, b); move(a, c); haoi(n - 1, b, a, c); }}int main01(){ haoi(3, 'A', 'B', 'C'); return 0;}//二分查找int brnarySearch(int *a, int start, int end, int aim){ int mid = (end + start) / 2; if (aim == a[mid])//找到 { return mid; } else { if (aim < a[mid]) { return brnarySearch(a, start, mid - 1, aim);//前 } else { return brnarySearch(a, mid + 1, end, aim);//后 } }}int main02(){ int a[] = { 1,3,7,8,10,13,15 }; int len = sizeof(a) / sizeof(int); int pos = brnarySearch(a, 0, len - 1, 7); cout << "is" << " a[" << pos << "]" << endl; return 0;}//归并排序void Merge(int *a, int Begin, int mid, int End){ int *b = new int[(End - Begin + 1)*sizeof(int)]; int i = Begin; int j = mid + 1; int k = 0; //合并到b[]中 while (i <= mid && j <= End) { if (a[i] <= a[j]) { b[k++] = a[i++]; } else { b[k++] = a[j++]; } } while (i <= mid) { b[k++] = a[i++]; } while (j <= End) { b[k++] = a[j++]; } // 复制回a[]中 for (int m = 0; m < k; m++) { a[Begin + m] = b[m]; } delete[]b;}void mergeSort(int *a, int Begin, int End){ int mid = (Begin + End) / 2; if (Begin >= End) return; else { mergeSort(a, Begin, mid); // 划分前半部分 //Merge(a, Begin, mid, End);// 合并 mergeSort(a, mid + 1, End); // 划分后半部分 Merge(a, Begin, mid, End);// 合并 }}void show(int *a, int len){ for (int i = 0; i < len; i++) cout << a[i] << " "; cout << endl;}int main(){ int a[] = { 5, 7, 2, 8, 1, 3, 6 }; int len = sizeof(a) / sizeof(int); mergeSort(a, 0, len - 1); Merge(a, 0, 3, 6); show(a, len); return 0;}
阅读全文
0 0
- ZZ一些简单算法
- C# 一些简单算法
- 一些简单的算法
- 一些简单算法实现
- 一些简单的算法
- 简单一些算法
- 一些比较简单的算法
- 递归算法思想&&一些简单算法实现
- 计算机视觉一些简单图片处理算法
- 一些简单常用算法整理学习 转
- 一维数组的一些简单算法
- 一些简单的排序、查找算法
- 一些简单数据结构算法的实现1
- 一些简单数据结构算法的实现2
- 一些简单数据结构算法的实现3
- 一些简单数据结构算法的实现4
- 一些简单数据结构算法的实现4
- 自动化脚本中运到的一些简单算法
- JavaScript学习之数组去重
- 【C++】C++大数之运算符重载
- Android数据加载界面状态切换:加载中样式,空数据样式,错误时样式
- SpringBoot之Helloworld
- 网站资料
- 简单一些算法
- 从输入网址到显示网页-2-DNS解析
- FileUriExposedException的解决方法
- 深入理解Binder(二),Binder是什么?
- StringBuffer类和StringBuilder类的详解,两者区别与使用实例
- python基础学习-闭包
- 第三章 授权(三)授权流程
- C1
- 垃圾邮件分类器的原理(1)