【选择排序】selection sort

更新时间:2023-08-27 22:38:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

【选择排序】selection sort

①直接打擂的方式:(直接选择排序法)direct selection

②锦标赛的方法:(树型选择法)non-tratified form

③堆排序:heapsort

【完全二叉树】complete binary tree

【交换排序】exchange sort

【冒泡排序法】bubble sort

【快速排序法】quick sort

1.各种方法概述

1)结构化编程

程序应该按自上而下的顺序执行,不会做随便跳转。主要为了提高可读性(特别是控制结构的),可自上而下的阅读代码,并且执行的顺序也大体是这样的。 它的三个组成部分:顺序Sequence,选择selection,循环(或迭

代)repetition (or iteration)。任何控制结构都可以用这三个部分组成。 需要小心使用其他方式如:break,continue,return,throw-catch.

2)模块化编程

将逻辑相关的数据和函数放在一个模块中。

它没有多个实例的概念,相当于面向对象中的仅包含静态方法和静态变量的类。不需要实例化即可直接调用方法,只存在一个"实例"。

VB中的Module就是这个思想的应用。

3)面向对象编程

主要特点:封装,继承,多态。

封装(Encapsulation):将逻辑相关的数据和方法(函数)放在一个类中。跟模块化编程做的一致。

继承(Inheritance):将内容或接口重用,并实现类型的多态。

多态(Polymorphism):不同的语义环境下,同一名称可以有多种不同的实现。 具体表现为两类:

同名方法不同内容,实现方式:使用重载(overload),当然方法的参数是不同的;

同名类型不同内容,实现方式:使用覆盖(override)或实现(implement)。允许使用同一接口调用不同类的的实例对象。

2.各种方法的目标

结构化编程。重点是是控制结构,可看作是基本程序语句(无子程序)的结构;

子程序化编程。似乎没有相关的历史潮流,但我认为加入它会使整个方法的发展过程更加完整。子程序(或过程、函数、方法)是模块化、面向对象编程的最重要的基石。

模块化编程。重点是将数据和子程序逻辑相关的组合;

面向对象编程。在模块化的基础上重点加入了模块之间的关系。这里的模块已演化为类。

3.方法体系

上述几种编程方法可以归为一类,属于一个方法体系,其重点在于编程本身,力图管理并降低程序逻辑的复杂性。随其发展,管理的代码单元越来越大,越来越复杂,其方式也越来越接近日常的思维。核心是封装逻辑结构(子程序、模块、类),以便在更高层次上获得简化的关系。

我认为此体系中新的方法还未出现。现在流行的方法中:AOP(面向方面编程),仅是此体系有益的补充;SOA面向服务架构,重点在于用统一的方式调用,而不依赖于底层技术,是组件化的一种形式,这不是这一类的主线方向。

4.总结:

以往的编程方法和原则在现代的方法中得到了保留和发展,这对新手是一个挑战,不循序渐进的学习这些技术,想要短期学会现代方法(如:面向对象编程)是困难的。

记住这些编程方法的主旨是很有好处的。

新的编程方法必将是历史方法的继承和发展,所以学好这些旧的方法非常重要。

掌握这些在各种层出不穷的新语言和新工具中不变的精华,或许,我们可以不再疲于追赶新的技术潮流。

微软的英汉词典对学习计算机英语不错

C语言中的关键字

auto :声明自动变量 一般不使用

double :声明双精度变量或函数

int: 声明整型变量或函数

struct:声明结构体变量或函数

break:跳出当前循环

else :条件语句否定分支(与 if 连用)

long :声明长整型变量或函数

switch :用于开关语句

case:开关语句分支

enum :声明枚举类型

register:声明积存器变量

typedef:用以给数据类型取别名(当然还有其他作用)

char :声明字符型变量或函数

extern:声明变量是在其他文件正声明(也可以看做是引用变量)

return :子程序返回语句(可以带参数,也看不带参数)

union:声明联合数据类型

const :声明只读变量

float:声明浮点型变量或函数

short :声明短整型变量或函数

unsigned:声明无符号类型变量或函数

continue:结束当前循环,开始下一轮循环

for:一种循环语句(可意会不可言传)

signed:生命有符号类型变量或函数

void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用) default:开关语句中的“其他”分支

goto:无条件跳转语句

sizeof:计算数据类型长度

volatile:说明变量在程序执行中可被隐含地改变

do :循环语句的循环体

while :循环语句的循环条件

static :声明静态变量

if:条件语句

C语言中的32个关键字

第一个关键字:auto

用来声明自动变量。 可以显式的声明变量为自动变量。只要不是声明在所有函数之前的变量,即使没加auto关键字,也默认为自动变量。并且只在声明它的函数内有效。而且当使用完毕后,它的值会自动还原为最初所赋的值。自动变量使用时要先赋值,因为其中包含的是未知的值。例:auto int name=1; 第二个关键字:static

用来声明静态变量。可以显式的声明变量为静态变量。也为局部变量。只在声明它的函数内有效。它的生命周期从程序开始起一直到程序结束。而且即使使用完毕后,它的值仍旧不还原。即使没有给静态变量赋值,它也会自动初始化为0.例:static int name=1.

第三个关键字:extern

用来声明全局变量。同时声明在main函数之前的变量也叫全局变量。它可以在程序的任何地方使用。程序运行期间它是一直存在的。全局变量也会初始化为0.例:extern int name;

第四个关键字:register

用来声明为寄存器变量。也为局部变量,只在声明它的函数内有效。它是保存在寄存器之中的。速度要快很多。对于需要频繁使用的变量使用它来声明会提高程序运行速度。例:register int name=1;

第五个关键字:int

用来声明变量的类型。int为整型。注意在16位和32位系统中它的范围是不同的。16位中占用2个字节。32位中占用4个字节。还可以显式的声明为无符号或有符号:unsigned int signed int .有符号和无符号的区别就是把符号位也当作数字位来存储。也可用short和long来声明为短整型,或长整行。例:int num;

第六个关键字:float

用来声明变量的类型。float为浮点型,也叫实型。它的范围固定为4个字节。其中6位为小数位。其他为整数位。例:float name;

第七个关键字:double

用来声明为双精度类型。它的范围为8个字节。14位为小数位。也可使用更高精度的long double 它的范围则更大,达到10字节。例:double name; 第八个关键字:struct

用来声明结构体类型。结构体可以包含各种不同类型的量。比如可以把整型,字符型等类型的变量声明在同一个结构体种,使用的时候使用结构体变量直接可以调用。例:struct some{

int a=1;

float b=1.1

double=1.1234567

}kkk;

这样就可以使用kkk.a来使用结构体中的成员变量了 。也可以显式的用struct some aaa,bbb;来声明多个结构体变量。

第九个关键字:char

用来定义为字符型变量。它的范围通常为1个字节。它在内存中是以ASC||玛来表示的。所以它也可以跟整型来运算。也可使用无符号或有符号来定义。sigened char unsigned char例:char c;

第十个关键字:break

用来表示中断。一般用在循环中。判断是否满足条件然后中断当前循环。例:break;

第十一个关键字:continue

用来表示跳过当前其后面的语句,继续下一次循环。例:continue;

第十二个关键字:long

用来声明长型的类型。比如long int long double .

第十三个关键字:if

判断语句,用来判断语句是否满足条件,例:if a==b

k=n;

第十四个关键字:switch

条件选择语句,常用来判断用户选择的条件来执行特定语句。例:switch (name) {

case ok:

printf("yes,ok!");

break;

case no:

printf("oh,no!");

default:

printf("error..!")

break;

}

第十五个关键字:case

配合switch一起使用,例子同上。

第十六个关键字:enum

用来声明枚举变量。.. 例:enum day{one,two,three,four,five,six,seven }; 第十七的关键子:typedef

类型重定义..可以重定义类型,例:typedef unsigned int u_int; //将无符号整形定义为u_int .

第十八个关键字:return;

返回语句。可以返回一个值。当我们定义一个函数为有返回值的时候则必须返回一个值。

第十九个关键字:unio

定义联共用体。用法用struct相同。不同的是共用体所有成员共享存储空间. unio kkk{

int a;

float b;

}kka;

第二十个关键字:const

定义为常量.. 例: const int a; //变量a的值不能被改变.

第二十一个关键字:unsigned

定义为无符号的变量.. 默认变量都为有符号的.除非显示的声明为unsigned的.

第二十二个关键字:for

循环语句.可以指定程序循环多少次. 例: for (int i=0;i<5;i++)

{

printf("程序将输出5次这段话!");

}

第二十三个关键字:signed

将变量声明为有符号型. 默认变量就为signed 型。一般可省略。

第二十四个关键字:void

空类型.. 一般用于声明函数为无返回值或无参数。

第二十五个关键字:default

用于在switch语句中。定义默认的处理. 用法见switch。

第二十六个关键字:goto

无条件循环语句. 例: int i=1;

w_go:

i++;

if (i<5)

goto w_go;

else

printf("%d",i);

第二十七个关键子字:sizeof

用来获取变量的存储空间大小.

第二十八个关键字:volatile

将变量声明为可变的. 用法 volatile int a; 具体用法还是不太明白。标记..!! 第二十九个关键字:do

一般与while语句 配合使用. 构成的形式如 do while 或while do .例见while语句。

第三十个关键字: while

循环控制语句。 只要表达式为真就一直循环.

第三十一个关键字:else

常用来配合if一起使用。

第三十二个关键字:short

用于声明一个短整型变量: 例: short int a access arm 磁头臂,存取臂

access time 存取时间

adder 加法器

address 地址

alphanumeric 字母数字的

analog computer 模拟计算机

analyst 分析员

area 区域

array 数组,阵列

assembler 汇编程序

automation 自动化

band 区

batch processing 成批处理

binary code 二进制码

binary digit 二进制位,二进制数字

bit 比特,二进制的一位

branch 分支,支线

brush 电刷

buffer storage 缓冲存储器

calculator 计算器

call instruction 呼叫指令

card punch 卡片穿孔机

card reader 卡片阅读机,读卡机

cell 单元

channel 通道,信道

character 字符

check digit 校验数位

circuit 电路,线路

to clear 清除,清零

clock 时钟

code 代码

to code 编码

coder 编码员,编码器

command 指令,命令

compiler 编译程序

computer language 计算机语言

console 控制台

control unit 控制部件,控制器

core storage, core store 磁心存储器 counter 计数器

cybernetics 控制论

cycle 循环

data 数据

data processing 数据处理

debugging 调试

decision 制定

digit 数字,数位,位

digital computer 数字计算机

disc, disk 磁盘

display unit 显示装置

drum 磁鼓

to edit 编辑

electronics 电子学

emitter 发射器

to encode 编码

to erase 擦除,清洗,抹除

feed 馈送,供给

to feed 馈送,供给

feedback 反馈

field 字段,信息组,域

file 文件

floppy disk 软磁盘

floppy disk drive 软磁盘机

flow chart 流程图

frame 帧

hardware 硬件

identifier 标识符

index 索引

information 信息

inline processing 内处理

input 输入

inquiry 询问

instruction 指令

integrated circuit 集成电路

to interpret 解释

item 项目,项

jump 转移

key 键,关键码

keyboard 键盘

latency time 等待时间

library 库,程序库

linkage 连接

to load 装入,寄存,写入,加载

location 存储单元

logger 登记器,记录器

loop 循环

machine language 机器语言

magnetic storage 磁存储器

magnetic tape 磁带

matrix 矩阵

memory 存储器

message 信息,报文

microcomputer 微型计算机

module 组件,模块

monitor 监视器,监督程序,管程

nanosecond 毫微秒

network 网络,网

numeric, numerical 数字的,数值的

octet 八位位组,八位字节

operator 操作员

optical character reader 光符阅读机 optical scanner 光扫描器

output 输出

overflow 溢出,上溢

panel 平板

parameter 参数,参量

perforator 穿孔机

peripheral equipment 外围设备,外部设备 personal computer 个人计算机

printed circuit 印制电路

printer 打印机

printout 打印输出

to process 处理

processing unit 处理部件

program 程序

to program 程序编制

programmer 程序设计员

programming 程序设计,程序编制

pulse 脉冲

punch 穿孔

to punch 穿孔

punched card, punch card 穿孔卡片 punched tape, punch tape 穿孔纸带 punch hole 孔,穿孔

random access 随机存取

to read 读

reader 阅读程序

reading 阅读

real time 实时

record, register 记录

redundancy 冗余

routine 例行程序

selector 选择器,选择符

sentinel 标记

sequence 序列,顺序

sequential 顺序的

serial 串行的.连续的

shift 移位,移数

signal 信号

simulation 模拟

simulator 模拟器,模拟程序

software 软件,软设备

sort 分类,排序

sorter 分类人员,分类机,分类程序,排序程序 storage 存储器

to store 存储

subroutine, subprogram 子程序

switch 开关

symbol 符号

symbolic language 符号语言

system 系统

tabulator 制表机

teleprinter 电传打字机

terminal 终端

terminal unit 终端设备

timer 时钟,精密计时器

time sharing 分时

timing 定时

track 磁道

transducer 传感器,翻译机

translator 翻译程序,翻译器

to update 更新

Winchester disk drive 温彻斯特磁盘机,硬盘机 working storage 工作存储器

method方法

function函数

procedure过程

本文来源:https://www.bwwdw.com/article/tnii.html

Top