C编程的指针涛 ---第九笔记
//这里说的是一个指针,指向算法的应用
//直接排序
//每个排序算法是指针指向的每个元件的特性的方便的交流
//这里的基本思想是,处理的记录的排序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编程的指针涛 ---第九笔记的更多相关文章
- C编程的指针涛 ---第十笔记
//指针实例搜索算法 //迷宫算法 //搜索是最长的使用深度优先搜索和广度优先搜索 //作为名称作为一个深度优先搜索,每路一直在寻找到底. //为了防止想法,这样的数据结构 //使得每次找到思路的时候 ...
- 《Java并发编程的艺术》读书笔记:二、Java并发机制的底层实现原理
二.Java并发机制底层实现原理 这里是我的<Java并发编程的艺术>读书笔记的第二篇,对前文有兴趣的朋友可以去这里看第一篇:一.并发编程的目的与挑战 有兴趣讨论的朋友可以给我留言! 1. ...
- Python编程从入门到实践笔记——异常和存储数据
Python编程从入门到实践笔记——异常和存储数据 #coding=gbk #Python编程从入门到实践笔记——异常和存储数据 #10.3异常 #Python使用被称为异常的特殊对象来管理程序执行期 ...
- Python编程从入门到实践笔记——文件
Python编程从入门到实践笔记——文件 #coding=gbk #Python编程从入门到实践笔记——文件 #10.1从文件中读取数据 #1.读取整个文件 file_name = 'pi_digit ...
- Python编程从入门到实践笔记——类
Python编程从入门到实践笔记——类 #coding=gbk #Python编程从入门到实践笔记——类 #9.1创建和使用类 #1.创建Dog类 class Dog():#类名首字母大写 " ...
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- Python编程从入门到实践笔记——用户输入和while循环
Python编程从入门到实践笔记——用户输入和while循环 #coding=utf-8 #函数input()让程序暂停运行,等待用户输入一些文本.得到用户的输入以后将其存储在一个变量中,方便后续使用 ...
- Python编程从入门到实践笔记——字典
Python编程从入门到实践笔记——字典 #coding=utf-8 #字典--放在{}中的键值对:跟json很像 #键和值之间用:分隔:键值对之间用,分隔 alien_0 = {'color':'g ...
- Python编程从入门到实践笔记——if语句
Python编程从入门到实践笔记——if语句 #coding=utf-8 cars=['bwm','audi','toyota','subaru','maserati'] bicycles = [&q ...
随机推荐
- poj 1664 把平果
这个问题可分为两个子问题:什么时候m<n时刻,例如3苹果放在4阿菜,和3苹果放3一样的. 所以m<n时,f[m][n]=f[m][m]; 当m>=n时.可分为两种放法,一种为至少有一 ...
- Linux进程管理(-)
一.进程的类型 能够将执行在Linux系统中的进程分为三种不同的类型: 交互进程:由一个Shell启动的进程.交互进程既能够在前台执行,也能够在后台 执行. 批处理进程:不与特定的终端相关联,提交 ...
- SQL Server 内存泄露(memory leak)——游标导致的内存问题
原文:SQL Server 内存泄露(memory leak)--游标导致的内存问题 转自:http://blogs.msdn.com/b/apgcdsd/archive/2011/07/01/sql ...
- ASP.Net中上传文件的几种方法
在做Web项目时,上传文件是经常会碰到的需求.ASP.Net的WebForm开发模式中,封装了FileUpload控件,可以方便的进行文件上传操作.但有时,你可能不希望使用ASP.Net中的服务器控件 ...
- eclipse 在win7 64两个图标出现位操作系统无法锁定到任务栏或任务栏
eclipse 在win7 64位操作系统无法锁定到任务栏或者任务栏上出现两个图标 解决的方法 eclipse在win7 64bit下无法锁定到任务栏问题(或是锁定后任务栏出现两个eclipse图标) ...
- Android 源代码结构(转)
简介 在使用Andriod SDK进行应用程序开发的时候,我们需要对源代码进行调试,有可能需要进入到某个Android API函数内部进行跟踪调试.但是,如果目标版本的SDK没有关联对应版本的源代码的 ...
- .net程序调用检测和性能分析工具——DotTrace
DotTrace可以对.net程序进行性能监测,对正在运行的程序和网站监控,主要界面如下: 需要将该工具安装在程序运行的服务器上. 主要用到这个视图,显示了每个方法的时间,下面是反编译出来的代码. P ...
- Sonar相关汇总
http://www.sonarqube.org/downloads/ http://docs.sonarqube.org/display/SONAR/Documentation/ 公司前段时间推动项 ...
- Android开源项目总结
Android开源项目--分类汇总 Android开源项目第一篇--个性化控件(View)篇 包含ListView.ActionBar.Menu.ViewPager.Gallery.GridView. ...
- Set <STL>
set是维护集合的容器 #include <cstdio> #include <set> using namespace std; int main() { //声明 set& ...