C语言-郝斌笔记-006排序及查找
1.
int partion(int *a, int low, int high)
{
int value = a[low];
int t; while (low < high)
{
while( high > low && a[high] >= value)
high--; //会跳到8行的while去执行,而不是转到10行去执行if语句
if(high != low)
{
t = a[low];
a[low] = a[high];
a[high] = t;
} while(low < high && a[low] <= value)
low++; if(low != high)
{
t = a[low];
a[low] = a[high];
a[high] = t;
}
}
return low;
}
2.
/*
IBM <数据结构>上的介绍的比普通冒泡排序方法更快速的冒泡排序方法
*/ # include <c:\turboc2\-\ziliao\sort\hh.c> /* 该函数用的仍是冒泡排序,唯一不同的是我们加了个标志flag,一旦发现数组
元素没有相互交换,我们就可以提前推出循环,从而节省了时间! */
void sort(int *a, int n) /* 冒泡升序排序 */
{
int i, flag = , j;
int temp; i=;
while (flag)
{
flag = ;
for (j=; j<n-i; ++j)
{
if (a[j] > a[j+])
{
temp = a[j];
a[j] = a[j+];
continue; //会跳去执行++j
a[j+] = temp;
flag = ;
break; //会跳出for循环,转去执行32行的break语句
}
}
break; //2 会跳出while循环
++i;
}
} main()
{
clrscr(); printf("The array is:\n");
prin(a,);
sort(a,);
printf("The sorted array is:\n");
prin(a,); getch();
return ;
} /*
最后修改于07年正月初四晚上21:15 远通网吧! */
3.
/*
2007-5-21
折半查找算法【递归法来实现】
*/ # include <stdio.h> /*
p指向数组首元素,n表示数足长度, val是待查找的元素,如果找到就返回该元素的下标,否则返回-1表
示没有找到 嘿嘿!
*/
int Find(int* p, int low, int high, int val)
{
int mid = (low + high) / ; if (low == high) /* 不会存在low > high 的情况! */
{
if (p[mid] == val)
{
return mid;
}
else
{
return -;
}
}
else
{
if (p[mid] < val)
{
Find(p,mid+,high,val);
}
else if (p[mid] > val)
{
Find(p,low,mid-,val);
}
else if (p[mid] == val) /* 最后这个else..if不要漏掉了,当然if (p[mid] == val)也可不写 */
{
return mid;
}
} printf("李四!\n");
} void Traverse(int* p, int n)
{
for (int i=; i<n; ++i)
printf("%-5d",p[i]); printf("\n");
} int main(void)
{
int a[] = {-,,,,,,,,,}; puts("原始数组的内容是:");
Traverse(a,); int k = Find(a,,,-);
if (- == k)
printf("没找到该元素!!!\n");
else
printf("该元素的具体位置是 %d \n",k); return ;
} /*
首先要明白,
折半查找的前提是数组中的元素已经排好序(无论升序降序都行) */
C语言-郝斌笔记-006排序及查找的更多相关文章
- C语言-郝斌笔记-007是否为素数
是否为素数 # include <stdio.h> bool IsPrime(int val) { int i; ; i<val; ++i) { ) break; } if (i = ...
- C语言-郝斌笔记-005菲波拉契序列
菲波拉契序列 /* 菲波拉契序列 1 2 3 5 8 13 21 34 */ # include <stdio.h> int main(void) { int n; int f1, f2, ...
- C语言-郝斌笔记-004判断是否为回文数
判断是否为回文数 # include <stdio.h> int main(void) { int val; //存放待判断的数字 int m; ; printf("请输入您需要 ...
- C语言-郝斌笔记-003数据类型
基本类型数据 整数 整型 —— int --4字节 短整型 —— short int ——2字节 长整型 —— long int ——8字节 浮点数[实 ...
- C语言-郝斌笔记-002病毒程序示范
病毒程序示范 /* 龌龊的程序! */ # include <stdio.h> # include <windows.h> # include <malloc.h> ...
- C语言-郝斌笔记-001求二次方程的根
求二次方程的根 #include <stdio.h > #include<math.h> int main(void) { //把三个系数保存到计算机中 ; //=不表示相等, ...
- 【C语言编程入门笔记】排序算法之快速排序,一文轻松掌握快排!
排序算法一直是c语言重点,各个算法适应不用的环境,同时,在面试时,排序算法也是经常被问到的.今天我们介绍下快速排序,简称就是快排. 1.快速排序思想: 快排使用 分治法 (Divide and con ...
- 郝斌老师C语言学习笔记(一)
在给变量分配内存时,很可能这段内存存在以前其他程序使用留下的值.当使用VC编译器,若编译器发现没有给变量赋值而使用,就会返回一个以“85”开头的很大的数字(此时该段内存中为一个垃圾数,为了避免出现较常 ...
- [C]郝斌C语言课程大纲及笔记
本笔记整理于郝斌老师C语言课程,做学习参考之用. 1.[编程笔记]第一章 C语言概述 2.[编程笔记]第二章 C语言预备知识 3.[编程笔记]第三章 运算符与表达式 4.[编程笔记]第四章 流程控制 ...
随机推荐
- js杨辉三角
function Tree() { this.lines = [ [] ] } var pp = Tree.prototype pp.genNode = function(line, i) { , , ...
- git,npm,bower设置代理地址
我們先假設代理伺服器的位址為: http://10.0.0.1:8080 設定 Git 使用代理伺服器 輸入兩行指令即可設定完畢: git config --global https.proxy ht ...
- hdoj-1037-Keep on Truckin'(水题)
题目链接 /* 题意:三个通道,如果比168低,那么过不去,输出最先碰到的低的通道高度值 */ #include <iostream> using namespace std; int ...
- 七、python沉淀之路--集合
一. 1.字符串转集合 s = 'hello' se = set(s) print(se) {'e', 'o', 'h', 'l'} 2.列表转集合 l1 = ['hello','python','n ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第六章 认识ListBox
反反复复考虑后,准备把这一章的切入点瞄准ListBox.并用了一个看起来有点别扭的标题“认识ListBox",许多人看到这里就不爱看了,即使是大学里用winform的学生也会说ListBox ...
- flask之python3 虚拟环境及使用dotnv来永久保存环境变量
Python 3 comes bundled with the venv module to create virtual environments Create an environment Cre ...
- JAVA中数值的表示
1.Java中用补码形式表示 2.第一位正负位,1表示负,0表示正. 3.原码:一个数的二进制表示. 3的原码00000011 -3的 原码 10000011 4 ...
- STM32 -- 硬件知识
一.网站资源 1.http://www.stmcu.com.cn/ 二.硬件 1.BOOT0 和 BOOT1 1)一般BOOT0和BOOT1跳线都跳到0(地): 只是在ISP下载的情况下,BOO ...
- 修改crushmap实验
标签(空格分隔): ceph,ceph实验,crushmap CRUSH的全称是Controlled Replication Under Scalable Hashing,是ceph数据存储的分布式选 ...
- mysql 异常宕机 ..InnoDB: Database page corruption on disk or a failed,,InnoDB: file read of page 8.
mysql 测试环境异常宕机 系统:\nKylin 3.3 mysql版本:5.6.15--yum安装,麒麟提供的yum源数据库版本 error日志 181218 09:38:52 mysqld_sa ...