程序片段(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天)的更多相关文章

  1. 20160129.CCPP体系详解(0008天)

    程序片段(01):函数.c+call.c+测试.cpp 内容概要:函数 ///函数.c #include <stdio.h> #include <stdlib.h> //01. ...

  2. 20160226.CCPP体系详解(0036天)

    程序片段(01):01.多线程.c+02.多线程操作.c 内容概要:多线程 ///01.多线程.c #include <stdio.h> #include <stdlib.h> ...

  3. 20160208.CCPP体系详解(0018天)

    程序片段(01):main.c 内容概要:PointWithOutInit #include <stdio.h> #include <stdlib.h> //01.野指针详解: ...

  4. 20160206.CCPP体系详解(0016天)

    代码片段(01):.指针.c+02.间接赋值.c 内容概要:内存 ///01.指针 #include <stdio.h> #include <stdlib.h> //01.取地 ...

  5. 20160205.CCPP体系详解(0015天)

    程序片段(01):01.杨辉三角.c 内容概要:杨辉三角 #include <stdio.h> #include <stdlib.h> #define N 10 //01.杨辉 ...

  6. 20160204.CCPP体系详解(0014天)

    程序片段(01):define.h+data.h&data.c+control.h&control.c+view.h&view.c+AI.h&AI.c+main.c 内 ...

  7. 20160203.CCPP体系详解(0013天)

    程序片段(01):数组.c+02.数组初始化语法.c 内容概要:数组 ///01.数组.c #include <stdio.h> #include <stdlib.h> //0 ...

  8. 20160128.CCPP体系详解(0007天)

    以下内容有所摘取,进行了某些整理和补充 论浮点数的存储原理:float浮点数与double浮点数的二进制存储原理–>阶码 浮点数转二进制 1.整数int类型和浮点数float类型都是占用4个字节 ...

  9. 20160127.CCPP体系详解(0006天)

    程序片段(01):msg.c 内容概要:线程概念 #include <stdio.h> #include <stdlib.h> #include <Windows.h&g ...

随机推荐

  1. ubuntu 添加右键打开方式,无法添加程序打开方式

    最近把工作环境迁移到ubuntu,装了WPS for Linux ,说实话确实是十分良心啊!运行效率奇高,绿色无广告,并且和windows版本无异,感觉就可以抛弃自带的libreoffice了. 但是 ...

  2. MySQL 5.7 新特性之增强半同步复制

    1. 背景介绍 半同步复制 普通的replication,即mysql的异步复制,依靠mysql二进制日志也即binary log进行数据复制.比如两台机器,一台主机(master),另外一台是从机( ...

  3. VueJs 源码解析 (四) initRender.Js

    vueJs 源码解析 (四) initRender.Js 在之前的文章中提到了 vuejs 源码中的 架构部分,以及 谈论到了 vue 源码三要素 vm.compiler.watcher 这三要素,那 ...

  4. Jenkins持续集成演示

    1.去我们的仓库修改一下代码 为了节约时间,我直接在网页上改了. 我们把布局页的footer信息改一下: 然后提交. 2.切换到Jenkins可以看到已经在构建了 等待构建完成. 3.访问我们部署的地 ...

  5. 前端面试送命题-JS三座大山

    前言 本篇文章比较适合3年以上的前端工作者,JS三座大山分别指:原型与原型链,作用域及闭包,异步和单线程. 原型与原型链 说到原型,就不得不提一下构造函数,首先我们看下面一个简单的例子: functi ...

  6. Hibernate | Spring JPA | MySQL 使用过程遇到的一些问题

    1. 使用过程 2. 背景 3. 遇到问题 3.1 不指定Hibernate数据库方言,默认SQL生成方式 3.2 抛出异常Hibernate加入了@Transactional事务不会回滚 3.3 H ...

  7. 【BZOJ3573】【HNOI2014】米特运输

    Description 米特是D星球上一种非常神秘的物质,蕴含着巨大的能量.在以米特为主要能源的D星上,这种米特能源的运输和储存一直是一个大问题. D星上有N个城市,我们将其顺序编号为1到N,1号城市 ...

  8. ●BZOJ 1233 [Usaco2009Open] 干草堆 tower

    题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1233 留坑.以后再来看看. (绝望,无奈,丧心...) (这个题的证明真的很诡异啊,看得我稀 ...

  9. python flask 基础入门

    1. Flask 中的Hello World! 在使用pycharm创建一个Flask项目后,将会默认创建一个flask的app,这里来讲下每行代码表示的意义,代码入下 from flask impo ...

  10. 解决nodejs中json序列化时Date类型为UTC格式

    在nodejs中,json序列化时Date类型时,默认转为UTC格式. 如下图 zhupengfei@DESKTOP-HJASOE3 MINGW64 /d/MyProject/exp2 $ node ...