![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
DK_dyon
这个作者很懒,什么都没留下…
展开
-
递归实现组合问题
功能:递归实现组合问题时间:2013-08-28#include using namespace std;void zuhe2(int P[], int i, int num);#define NUM 3int A[] = {1, 2, 3, 4, 5, 6};int B[NUM];int n = sizeof(A)/sizeof(int);int main(void)原创 2013-08-28 20:54:11 · 557 阅读 · 0 评论 -
排序:交换排序(冒泡排序、快速排序)
/* 快速排序算法:首先选定1个元素作为中间元素,然后将所有元素与之比较, 将元素划分为两块,再对子块进行快速排序。*/#include using namespace std;int Sort(int a[], int font, int back);void QuickSort(int a[], int font, int back); const int alen = 10原创 2013-09-15 04:02:06 · 454 阅读 · 0 评论 -
排序:选择排序(直接选择排序、堆排序)
选择排序:每一趟排序中,选出关键字最小(最大)依次放在前面(后面)1、直接选择排序2、堆排序/* 直接选择排序 */void selectSort(int* A){ for (int i = 0; i < NUM-1; i++) //需要选择的数 { int Min = A[i]; for (int j = i+1; j < NUM; j++) //需要对比原创 2013-10-14 21:30:19 · 458 阅读 · 0 评论 -
排序:插入排序(直接插入排序、Shell排序)
1、直接排序:将整个待排序子表看作是左右两部分,左边是有序,右边是待排序,过程即为右边选择放入左边。void insert_sort(int *a, int alen){ for (int i = 1; i < alen; i++) { int j = i - 1; int tem = a[i]; while (a[j]>tem && j>=0) { a[j+1]原创 2013-08-31 19:29:37 · 438 阅读 · 0 评论 -
C 约瑟夫环
步骤:1、生成循环链表2、定位到需要删除的节点(nowNode),并记录上一个节点(preNode)3、确保链表长度不为零。根据步长,计算删除节点位置。删除前保存下一个节点(nexNode)4、恢复链表,跳到3。#include #include #include #define NUM 10 //节点数typedef struct student{ int原创 2013-10-13 18:10:34 · 473 阅读 · 0 评论 -
C单链表操作
今天面试给“宇龙酷派”鄙视了。我想说,其实链表反转我会!单链表:初始化、创建、显示、删除、插入特定位置、删除特定位置、反转操作。#include #include #include #include typedef struct student{ int data; struct student* next;}Node;//初始化Node* InitNode()原创 2013-10-11 21:44:31 · 804 阅读 · 0 评论 -
C二分法查找
/* 二分法查找位置*/#include /* 非递归实现 */int BinSerch(int iTmp, int* sTmp){ int low = 0, high = 9; int mid = 0; while (high >= low) { mid = (high + low)/2; if (iTmp<sTmp[mid]) high = mid - 1原创 2013-10-10 10:36:35 · 588 阅读 · 0 评论 -
双向动态释放函数
双向动态释放函数,困扰了好几天,后来百度知道了下,得到大神指点,这里表示感谢。点击打开链接int main(void){ node* NODE = CreatNode(); if (NULL == NODE) { printf("The NODE can't creat.\n"); exit(EXIT_FAILURE); } printf("%d\n原创 2013-10-10 10:06:53 · 412 阅读 · 0 评论 -
内存管理
点击打开链接转载 2013-09-21 11:30:17 · 395 阅读 · 0 评论 -
C/C++ 排列组合问题(递归)
问题描述:一个MXN的矩形,从左下角走到右上角有多少种走法。#include #include using namespace std;void luxian(int alen, int blen, char P[][100], int ai, int bi, int num);const int alen = 5;const int blen = 7;char *原创 2013-09-13 20:28:11 · 777 阅读 · 0 评论 -
高位转低位
功能:高位在前 与 低位在前 转换时间:2013-08-28#include using namespace std;int main(void){ int a = 0x01020304; int b = 0; for (int i = 0; i < 4; i++) { b |= ((a>>i*8) & 0xff) << (3-i)*8; } cout << h原创 2013-08-28 20:56:02 · 1299 阅读 · 0 评论 -
递归实现最大值求解
去一家公司面试问道的问题:不会做,然后面试官跟我讲了一下递归算法(很感谢,哈哈)递归思路:1、如果元素只有一个?那就直接当前元素返回2、如果元素不止一个?那就比较当前元素与之前元素们的最大值int MaxInt(int* a, int front, int back){ if (front == back) { return a[front]; } else原创 2013-10-23 10:37:32 · 675 阅读 · 0 评论