//这里说的是一个指针,指向算法的应用

//直接排序

//每个排序算法是指针指向的每个元件的特性的方便的交流

//这里的基本思想是,处理的记录的排序n - 1第二选择。

//第i次操作选择i大(小)的记录放在第i个(或者n - i - 1 个)位置上。

//即每次都将一个记录放在它终于的位置上,

//这就是所谓的“各回各家”

#include <iostream>

#include <cstdio>

using namespace std;

void SelectSort(int *Array, int n)

{

int i, j, m, a;

//从无序的序列中找到最小值的位置

for(i = 0; i < n - 1; i++)

{

m = 1;

for(j = i + 1; j < n; ++j)

{

if(*(Array + j) < *(Array + m))

m = j;

}

/*

*记录当前最小值的位置

* */





if(m != 1)

{

a = *(Array + m);

*(Array + m) = *(Array + 1);

*(Array + i) = a;

}

}





}













int main()

{

int i  = 0;

int Array[10] = {12, 2, 37, 67, 90, 1, 78, 67, 2, 32};

printf("待排序的数组为:\n");

for(i = 0; i < 10; ++i)

{

printf("%d\t", *(Array + i));

}

SelectSort(Array, 10);

printf("\n直接排序后的结果为:\n");

for(int j = 0; j <10; ++j)

{

printf("%d ", *(Array + j));

}

printf("\n");

return 0;

}





//查找,当中涉及指针的偏移

//查找分为顺序查找

//折半查找

//儿茶查找

//分块查找

//这里举的样例是二分查找

#include <iostream>

#include <cstdio>

using namespace std;

int BinarySearch(int * Array, int n, int x)

{

int low, high, middle;

low = 0, high = n - 1;

while(low <= high)

{

middle = (low + high)/2;

if(*(Array + middle) == x)

return 1;

else

{

if(*(Array + middle) >= x)

{

high = middle - 1;

}

if(*(Array + middle) <=x)

{

low = middle + 1;

}

}



}





}













int main()

{

int Array[10] = {2, 4, 5, 13, 15, 20, 30, 35, 40, 50};

int x1, x2;

x1 = 20;

x2 = 33;

if(BinarySearch(Array, 10, x1))

printf("已经找到%d\n", x1);

else

printf("未找到%d\n", x1);

if(BinarySearch(Array, 10, x2))

printf("已经找到%d\n", x2);

else

printf("未找到%d\n", x2);

return 0;

}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

C编程的指针涛 ---第九笔记的更多相关文章

  1. C编程的指针涛 ---第十笔记

    //指针实例搜索算法 //迷宫算法 //搜索是最长的使用深度优先搜索和广度优先搜索 //作为名称作为一个深度优先搜索,每路一直在寻找到底. //为了防止想法,这样的数据结构 //使得每次找到思路的时候 ...

  2. 《Java并发编程的艺术》读书笔记:二、Java并发机制的底层实现原理

    二.Java并发机制底层实现原理 这里是我的<Java并发编程的艺术>读书笔记的第二篇,对前文有兴趣的朋友可以去这里看第一篇:一.并发编程的目的与挑战 有兴趣讨论的朋友可以给我留言! 1. ...

  3. Python编程从入门到实践笔记——异常和存储数据

    Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...

  4. Python编程从入门到实践笔记——文件

    Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...

  5. Python编程从入门到实践笔记——类

    Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...

  6. Python编程从入门到实践笔记——函数

    Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...

  7. Python编程从入门到实践笔记——用户输入和while循环

    Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...

  8. Python编程从入门到实践笔记——字典

    Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...

  9. Python编程从入门到实践笔记——if语句

    Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...

随机推荐

  1. Codeforces 459E Pashmak and Graph(dp+贪婪)

    题目链接:Codeforces 459E Pashmak and Graph 题目大意:给定一张有向图,每条边有它的权值,要求选定一条路线,保证所经过的边权值严格递增,输出最长路径. 解题思路:将边依 ...

  2. c#里listview里如何获取点击的是哪一列

    很多时候c#里会用到listview,又会给它添加很多的列,可以设置点击列的标头实现按照这列的内容排序等功能,然而点击不同列排序的方法是不一样的,这时候就需要知道,我到底是点击了哪一列,比如点击名字列 ...

  3. JDK自带的监控分析工具JConsole

    非常多开发人员认为自己懂Java编程.事实是大多数开发人员都仅仅领会到了Java平台的皮毛.所学也仅仅够应付工作. 作者将深度挖掘Java平台的核心功能.揭示一些鲜为人知的事实.帮助您解决最棘手的编程 ...

  4. Java学习路径:不走弯路,这是一条捷径

    1.如何学习编程? JAVA是一种平台.也是一种程序设计语言,怎样学好程序设计不只适用于JAVA,对C++等其它程序设计语言也一样管用.有编程高手觉得,JAVA也好C也好没什么分别,拿来就用.为什么他 ...

  5. 跨域 Iframe 通信解决方案(兼容 IE 系列浏览器。)

    实现思路: 1.postMessage(IE8+, Firefox 3.1+, Opera 9+, Safari, and Chrome) 2.利用window.navigator共享信息,使支持IE ...

  6. POSIX 螺纹具体解释(1-概要)

    线程是有趣的 线程类似于进程.如同进程,线程由内核按时间分片进行管理.在单处理器系统中,内核使用时间分片来模拟线程的并发运行.这样的方式和进程的同样. 而在多处理器系统中,如同多个进程.线程实际上一样 ...

  7. Kafka (一)

    使用Kafka最新版本0.9 Kafka 配置 1. 安装 首先需要安装Java,推荐安装Java8,不然会出现一些莫名其妙的错误 kafka_2.11-0.9.0.0.tgz tar -xzf ka ...

  8. NGUI Example5 演示示例评论– lights and Refraction

     NGUI Example5 – lights and Refraction        NUI这个系统是在是牛.比unity3D里面自带的gui要好用得多.还能够为GUI加入法线贴图! 哈哈. ...

  9. 前端是Sencha Touch+ Cordova(转)

    从13年初开始,我的关注点一直在两个点上,一个是股票,一个是移动前端和大数据技术,互联网金融的发展会让互联网证券越来越火热,当然,我也希望将这两个关注点结合到一起,做一些事情.   现在,我的APP和 ...

  10. cocos2d-x 网络请求

    [cocos2dx]rapidjson用法以及中文显示的解决方法 cocos2dx 读取json及解析 cocos2dx rapidjson 高速解析JSON  --- [cocos2d-x官方文档] ...