
算法复习
zhoukangli
一路向前,实践自己的梦想~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数组合并小程序
这里一个一个插入是有效率问题的,为了程序简单,没有处理,如果有一批插入元素都在范围内,可以整体插入,但是实现条件会更多。3. 一个函数专门用于查找可以插入的位置,对于重复的数据,查找到的未知有可能是重复的,那么要跳过;1. 如果比插入的数组大,那么往后插入,如果继续有大的,就移动位置插入;4. 一个函数专门用于插入动作,插入方法就是先整体移动位置,然后插入;2. 遍历完所有要插入的元素;原创 2024-03-28 22:00:58 · 663 阅读 · 0 评论 -
快速排序的关键点
2. 从高往低找比基准准小的,所以条件是只要比自己大或者等于,就跳过,然后找到之后,进行交换,这里注意前提条件是从高到低,与从低到高都是维持,低<高。3. 从低往高找比基准大的,所以条件是只要是比自己小或者等于的,就跳过,然后找到之后,进行交换。4. 最后返回low的位置,作为进一步划分的前后端。这里有一个停止条件就是,low必须小于high。寻找基准位置前的区域进行划分。寻找基准位置后的区域进行划分。原创 2024-03-28 14:28:40 · 162 阅读 · 0 评论 -
c++中传递指针的一种方法
#includeusing namespace std;struct A{int a;int b;char c;};void f(struct A *&p, int a, int b, char c){ p = new struct A; if (!p) { return; } else { p->a = a;原创 2012-09-21 10:17:05 · 1364 阅读 · 0 评论 -
一个笔试题目(实现大小端的相互转换,只针对32位的int类型)
#include//大小端相互转换int big_litle_endian(int x){ int tmp; tmp = (((x)&0xff)>8)&0xff)>16)&0xff)>24)&0xff)); return tmp;}int main(){ int x; x = 0x12345678; printf("0x%x\n",原创 2012-09-18 10:05:39 · 4134 阅读 · 1 评论 -
c++中的值传递
大家都知道,在c++中,值传递的时候在栈里面会创建一个临时的对象,那么它会不会调用对应的构造函数和析构函数呢?猜想的话,应该是会调用了的...额,可是做了一个测试...从现象中发现只调用了...析构函数,那么到底有没有调用构造函数呢...#includeusing namespace std;class B{int i;public:B(){ i = 0;原创 2012-09-16 21:50:15 · 600 阅读 · 0 评论 -
算法中的上下界,等阶
算法中的渐近符号含义:低和顶的定义:原创 2012-09-16 15:50:39 · 2436 阅读 · 1 评论 -
其实while(1) 和for(;;)是有区别的(在vc++6.0进行测试)
7: for (;1;)0040D40F mov eax,10040D414 test eax,eax0040D416 je main+31h (0040d421)9: while (1)0040D40F mov eax,10040D414 test原创 2012-09-15 21:10:31 · 1295 阅读 · 0 评论 -
很久没有看c了,突然忘记c中的真假代表什么了,在vc++6.0测试一下
#includeint main(){ int val = -1; if (val) { printf(" when val = %d true \n", val); } else { printf(" when val = %d false \n", val); } val = 1; if (val) {原创 2012-09-11 10:09:26 · 1760 阅读 · 0 评论 -
自己写的选择排序算法(源代码)
/*-------------------------------------------------------------------- 实现选择排序算法 基本思想:选择其中的第i小的元素,和i位置的元素交换;--------------------------------------------------------原创 2012-09-09 22:23:02 · 1305 阅读 · 0 评论 -
自己写的快速排序算法(源码)
#includevoid swap(int &a, int &b){ int tmp; tmp = a; a = b; b = tmp;}int partition(int key, int left, int right, int array_list[]){ int low; int high; low =原创 2012-09-09 21:55:24 · 665 阅读 · 0 评论 -
自己写的二分查找法
#includeint binary_search(int left, int right, int array_list[], int x){ int mid = (left + right)/2; if (left <= right) { if (x == array_list[mid]) { return mid; }原创 2012-09-09 21:35:34 · 682 阅读 · 0 评论 -
自己写的归并排序(源码)
#include/************************************************************************//*left---mid 排好序了的,但其中的个数可能不一样。 *//*mid+1 -- right 排好序了的原创 2012-09-09 21:31:57 · 617 阅读 · 0 评论 -
对于数组与指针的理解
/************************************************************************//* 深入理解指针与数组的区别 *//***********************************************************原创 2012-09-10 22:11:59 · 513 阅读 · 0 评论 -
自己写的汉诺塔源代码
/************************************************************************//* hanio问题, 将n个盘子移动到B处 *//**********************************************************原创 2012-09-09 21:37:44 · 1851 阅读 · 1 评论 -
自己写的全排列算法
#includevoid swap(char &a, char &b){ int temp = a; a = b; b = temp;}void sortall(int k, int m, char array_list[]){ int i = 0; int j = 0; if (k == m)//排列完了,输出 { for (i原创 2012-09-09 21:34:10 · 834 阅读 · 0 评论