20160213.CCPP体系详解(0023天)
程序片段(01):全排列.c
内容概要:全排列密码库
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
//01.对于字符类型的数组进行初始化特点:
// 如果赋予的数据是字符串,则可以省略掉大括号
//注:性能+最优
int main01(void)
{
char arr[10] = "11111";
for (char * p = arr; 0 != *p; ++p)
{
putchar(*p);
}
system("pause");
}
//02.凡是涉及到跨函数修改数据:
// 注:必须传递变量的所属地址!
void swop(char * pa, char * pb)
{
char temp = *pa;
*pa = *pb;
*pb = temp;
}
//03.全局变量的使用:
// 导致:每次操作的都是同一个变量!
int ipos = 0;
char srcStr[5] = "1234";
void allArange(char * pBegin)
{
if ('\0' == *pBegin)
{
printf("第%2d次排列,排列结果为%4s! \n", ++ipos, srcStr);
char resPath[100] = { 0 };
sprintf(resPath, "echo %s >> E:\\Resource\\TestData\\Test\\allArange.txt", srcStr);
system(resPath);
}
for (char * p = pBegin; '\0' != *p; ++p)
{
swop(pBegin, p);
allArange(pBegin + 1);
swop(p, pBegin);
}
}
int main(void)
{
allArange(srcStr);
system("pause");
}
程序片段(02):快速排序法
内容概要:快速排序法
#include <stdio.h>
#include <stdlib.h>
void swop(int * pa, int * pb)
{
int temp = *pa;
*pa = *pb;
*pb = temp;
}
void show(int * arr, int n)
{
for (int i = 0; i < n; ++i)
{
printf("%3d", arr[i]);
}
printf("\n");
}
//01.快速排序:
// 用途:单线程整体数据排序最快!
void quick(int * arr, int leftIndex, int rightIndex)
{
int i = leftIndex;
int j = rightIndex + 1;
if (i < j)//保证索引正确!+排除第一次异常!
{
do
{
do
{
++i;//跳过待中立的数组元素
} while (i <= rightIndex && arr[i] <= arr[leftIndex]);//找到从左边开始的第一个小于或等于数组首元素的的数组元素
do
{
--j;//进入到真实的数组元素
} while (j > leftIndex && arr[j] >= arr[leftIndex]);//找到从右边开始的第一个大于或等于首元素的数组元素
if (i < j)
{
swop(&arr[i], &arr[j]);//交换(最靠左边的第一个小于值和最靠右边的第一个的大于值)!
}
} while (i < j);//一轮交换完毕!
swop(&arr[leftIndex], &arr[j]);
quick(arr, leftIndex, j - 1);
quick(arr, j + 1, rightIndex);
}
}
int main01(void)
{
int arr[10] = { 10, 9, 20, 19, 13, 8, 9, 22, 0, 91 };
printf("数组原始状态: \n");
show(arr, 10);
quick(arr, 0, 9);
printf("数组排序之后: \n");
show(arr, 10);
system("pause");
}
20160213.CCPP体系详解(0023天)的更多相关文章
- 20160129.CCPP体系详解(0008天)
程序片段(01):函数.c+call.c+测试.cpp 内容概要:函数 ///函数.c #include <stdio.h> #include <stdlib.h> //01. ...
- 20160226.CCPP体系详解(0036天)
程序片段(01):01.多线程.c+02.多线程操作.c 内容概要:多线程 ///01.多线程.c #include <stdio.h> #include <stdlib.h> ...
- 20160208.CCPP体系详解(0018天)
程序片段(01):main.c 内容概要:PointWithOutInit #include <stdio.h> #include <stdlib.h> //01.野指针详解: ...
- 20160206.CCPP体系详解(0016天)
代码片段(01):.指针.c+02.间接赋值.c 内容概要:内存 ///01.指针 #include <stdio.h> #include <stdlib.h> //01.取地 ...
- 20160205.CCPP体系详解(0015天)
程序片段(01):01.杨辉三角.c 内容概要:杨辉三角 #include <stdio.h> #include <stdlib.h> #define N 10 //01.杨辉 ...
- 20160204.CCPP体系详解(0014天)
程序片段(01):define.h+data.h&data.c+control.h&control.c+view.h&view.c+AI.h&AI.c+main.c 内 ...
- 20160203.CCPP体系详解(0013天)
程序片段(01):数组.c+02.数组初始化语法.c 内容概要:数组 ///01.数组.c #include <stdio.h> #include <stdlib.h> //0 ...
- 20160128.CCPP体系详解(0007天)
以下内容有所摘取,进行了某些整理和补充 论浮点数的存储原理:float浮点数与double浮点数的二进制存储原理–>阶码 浮点数转二进制 1.整数int类型和浮点数float类型都是占用4个字节 ...
- 20160127.CCPP体系详解(0006天)
程序片段(01):msg.c 内容概要:线程概念 #include <stdio.h> #include <stdlib.h> #include <Windows.h&g ...
随机推荐
- JavaScript的数组实现队列与堆栈的方法
一.队列和堆栈的简单介绍 1.1.队列的基本概念 队列:是一种支持先进先出(FIFO)的集合,即先被插入的数据,先被取出! 如下图所示: 1.2.堆栈的基本概念 堆栈:是一种支持后进先出(LIFO)的 ...
- Java 静态内部类注意点
静态内部类(嵌套类)的对象除了没有对生成它的外部类对象的引用特权外,与其他所有内部类完全一样. 在内部类不需要访问外部类时,应该使用静态内部类(嵌套类). 与常规内部类不同的是,静态内部类可以拥有静态 ...
- java中的接口概念
接口的特点: 接口中只有抽象方法和全局常量 public interface className{} 范例:简单的代码模型 interface A{ public static final Strin ...
- C#利用微软企业库Enterprise Library配置mysql数据库
在C#项目中,很多时候到要用到Enterprise Library.这里只是用一个很简单的小例子来演示一下Enterprise Library在VS2010中操作MySQL数据库的流程. 1,利用En ...
- 网络安全实验室_注入关writeup
最简单的SQL注入 查看页面源码发现提示要登录admin账户 果断试试万能密码admin' or 1=1# 直接能看到flag了 最简单的SQL注入(熟悉注入环境) 首先查看源码,提示id=1,看样子 ...
- [SPOJ 4155]OTOCI
Description 题库链接 给你 \(n\) 个节点,让你兹磁以下操作,维护一棵树: 动态加边: 修改点权: 询问路径上点权和. \(1\leq n\leq 30000\) Solution 好 ...
- [HAOI2016]找相同字符
题目描述 给定两个字符串,求出在两个字符串中各取出一个子串使得这两个子串相同的方案数.两个方案不同当且仅当这两个子串中有一个位置不同. 输入输出格式 输入格式: 两行,两个字符串s1,s2,长度分别为 ...
- hdu 4031 attack 线段树区间更新
Attack Time Limit: 5000/3000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)Total Subm ...
- VK-Cup 2017 qualification 1
VK-Cup,cf里面只有切成俄文才能看到,题目也都是俄文的(百度翻译成英文和中文). 两人组队参赛的,赛期1天,乐多赛赛制(和时间基本无关,交上去挂了扣分).这次是第一场资格赛. 这次又和ditol ...
- hdu5631 BestCoder Round #73 (div.2)
Rikka with Graph Accepts: 123 Submissions: 525 Time Limit: 2000/1000 MS (Java/Others) Memory Lim ...