选择排序selection sort.docx

上传人:b****5 文档编号:7386416 上传时间:2023-01-23 格式:DOCX 页数:13 大小:21.69KB
下载 相关 举报
选择排序selection sort.docx_第1页
第1页 / 共13页
选择排序selection sort.docx_第2页
第2页 / 共13页
选择排序selection sort.docx_第3页
第3页 / 共13页
选择排序selection sort.docx_第4页
第4页 / 共13页
选择排序selection sort.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

选择排序selection sort.docx

《选择排序selection sort.docx》由会员分享,可在线阅读,更多相关《选择排序selection sort.docx(13页珍藏版)》请在冰豆网上搜索。

选择排序selection sort.docx

选择排序selectionsort

【选择排序】selectionsort

①直接打擂的方式:

(直接选择排序法)directselection

②锦标赛的方法:

(树型选择法)non-tratifiedform

③堆排序:

heapsort

【完全二叉树】completebinarytree

【交换排序】exchangesort

【冒泡排序法】bubblesort

【快速排序法】quicksort

1.各种方法概述

 1)结构化编程

   程序应该按自上而下的顺序执行,不会做随便跳转。

主要为了提高可读性(特别是控制结构的),可自上而下的阅读代码,并且执行的顺序也大体是这样的。

   它的三个组成部分:

顺序Sequence,选择selection,循环(或迭代)repetition(oriteration)。

任何控制结构都可以用这三个部分组成。

   需要小心使用其他方式如:

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关键字,也默认为自动变量。

并且只在声明它的函数内有效。

而且当使用完毕后,它的值会自动还原为最初所赋的值。

自动变量使用时要先赋值,因为其中包含的是未知的值。

例:

autointname=1;

第二个关键字:

static

用来声明静态变量。

可以显式的声明变量为静态变量。

也为局部变量。

只在声明它的函数内有效。

它的生命周期从程序开始起一直到程序结束。

而且即使使用完毕后,它的值仍旧不还原。

即使没有给静态变量赋值,它也会自动初始化为0.例:

staticintname=1.

第三个关键字:

extern

用来声明全局变量。

同时声明在main函数之前的变量也叫全局变量。

它可以在程序的任何地方使用。

程序运行期间它是一直存在的。

全局变量也会初始化为0.例:

externintname;

第四个关键字:

register

用来声明为寄存器变量。

也为局部变量,只在声明它的函数内有效。

它是保存在寄存器之中的。

速度要快很多。

对于需要频繁使用的变量使用它来声明会提高程序运行速度。

例:

registerintname=1;

第五个关键字:

int

用来声明变量的类型。

int为整型。

注意在16位和32位系统中它的范围是不同的。

16位中占用2个字节。

32位中占用4个字节。

还可以显式的声明为无符号或有符号:

unsignedintsignedint.有符号和无符号的区别就是把符号位也当作数字位来存储。

也可用short和long来声明为短整型,或长整行。

例:

intnum;

第六个关键字:

float

用来声明变量的类型。

float为浮点型,也叫实型。

它的范围固定为4个字节。

其中6位为小数位。

其他为整数位。

例:

floatname;

第七个关键字:

double

用来声明为双精度类型。

它的范围为8个字节。

14位为小数位。

也可使用更高精度的longdouble它的范围则更大,达到10字节。

例:

doublename;

第八个关键字:

struct

用来声明结构体类型。

结构体可以包含各种不同类型的量。

比如可以把整型,字符型等类型的变量声明在同一个结构体种,使用的时候使用结构体变量直接可以调用。

例:

structsome{

inta=1;

floatb=1.1

double=1.1234567

}kkk;

这样就可以使用kkk.a来使用结构体中的成员变量了。

也可以显式的用structsomeaaa,bbb;来声明多个结构体变量。

第九个关键字:

char

用来定义为字符型变量。

它的范围通常为1个字节。

它在内存中是以ASC||玛来表示的。

所以它也可以跟整型来运算。

也可使用无符号或有符号来定义。

sigenedcharunsignedchar例:

charc;

第十个关键字:

break

用来表示中断。

一般用在循环中。

判断是否满足条件然后中断当前循环。

例:

break;

第十一个关键字:

continue

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

例:

continue;

第十二个关键字:

long

用来声明长型的类型。

比如longintlongdouble.

第十三个关键字:

if

判断语句,用来判断语句是否满足条件,例:

ifa==b

k=n;

第十四个关键字:

switch

条件选择语句,常用来判断用户选择的条件来执行特定语句。

例:

switch(name)

{

caseok:

printf("yes,ok!

");

break;

caseno:

printf("oh,no!

");

default:

printf("error..!

")

break;

}

第十五个关键字:

case

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

第十六个关键字:

enum

用来声明枚举变量。

..例:

enumday{one,two,three,four,five,six,seven};

第十七的关键子:

typedef

类型重定义..可以重定义类型,例:

typedefunsignedintu_int;//将无符号整形定义为u_int.

第十八个关键字:

return;

返回语句。

可以返回一个值。

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

第十九个关键字:

unio

定义联共用体。

用法用struct相同。

不同的是共用体所有成员共享存储空间.

uniokkk{

inta;

floatb;

}kka;

第二十个关键字:

const

定义为常量..例:

constinta;//变量a的值不能被改变.

第二十一个关键字:

unsigned

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

第二十二个关键字:

for

循环语句.可以指定程序循环多少次.例:

for(inti=0;i<5;i++)

{

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

");

}

第二十三个关键字:

signed

将变量声明为有符号型.默认变量就为signed型。

一般可省略。

第二十四个关键字:

void

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

第二十五个关键字:

default

用于在switch语句中。

定义默认的处理.用法见switch。

第二十六个关键字:

goto

无条件循环语句.例:

inti=1;

w_go:

i++;

if(i<5)

gotow_go;

else

printf("%d",i);

第二十七个关键子字:

sizeof

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

第二十八个关键字:

volatile

将变量声明为可变的.用法volatileinta;具体用法还是不太明白。

标记..!

第二十九个关键字:

do

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

第三十个关键字:

while

循环控制语句。

只要表达式为真就一直循环.

第三十一个关键字:

else

常用来配合if一起使用。

第三十二个关键字:

short

用于声明一个短整型变量:

例:

shortinta

accessarm磁头臂,存取臂

accesstime存取时间

adder加法器

address地址

alphanumeric字母数字的

analogcomputer模拟计算机

analyst分析员

area区域

array数组,阵列

assembler汇编程序

automation自动化

band区

batchprocessing成批处理

binarycode二进制码

binarydigit二进制位,二进制数字

bit比特,二进制的一位

branch分支,支线

brush电刷

bufferstorage缓冲存储器

calculator计算器

callinstruction呼叫指令

cardpunch卡片穿孔机

cardreader卡片阅读机,读卡机

cell单元

channel通道,信道

character字符

checkdigit校验数位

circuit电路,线路

toclear清除,清零

clock时钟

code代码

tocode编码

coder编码员,编码器

command指令,命令

compiler编译程序

computerlanguage计算机语言

console控制台

controlunit控制部件,控制器

corestorage,corestore磁心存储器

counter计数器

cybernetics控制论

cycle循环

data数据

dataprocessing数据处理

debugging调试

decision制定

digit数字,数位,位

digitalcomputer数字计算机

disc,disk磁盘

displayunit显示装置

drum磁鼓

toedit编辑

electronics电子学

emitter发射器

toencode编码

toerase擦除,清洗,抹除

feed馈送,供给

tofeed馈送,供给

feedback反馈

field字段,信息组,域

file文件

floppydisk软磁盘

floppydiskdrive软磁盘机

flowchart流程图

frame帧

hardware硬件

identifier标识符

index索引

information信息

inlineprocessing内处理

input输入

inquiry询问

instruction指令

integratedcircuit集成电路

tointerpret解释

item项目,项

jump转移

key键,关键码

keyboard键盘

latencytime等待时间

library库,程序库

linkage连接

toload装入,寄存,写入,加载

location存储单元

logger登记器,记录器

loop循环

machinelanguage机器语言

magneticstorage磁存储器

magnetictape磁带

matrix矩阵

memory存储器

message信息,报文

microcomputer微型计算机

module组件,模块

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

nanosecond毫微秒

network网络,网

numeric,numerical数字的,数值的

octet八位位组,八位字节

operator操作员

opticalcharacterreader光符阅读机

opticalscanner光扫描器

output输出

overflow溢出,上溢

panel平板

parameter参数,参量

perforator穿孔机

peripheralequipment外围设备,外部设备

personalcomputer个人计算机

printedcircuit印制电路

printer打印机

printout打印输出

toprocess处理

processingunit处理部件

program程序

toprogram程序编制

programmer程序设计员

programming程序设计,程序编制

pulse脉冲

punch穿孔

topunch穿孔

punchedcard,punchcard穿孔卡片

punchedtape,punchtape穿孔纸带

punchhole孔,穿孔

randomaccess随机存取

toread读

reader阅读程序

reading阅读

realtime实时

record,register记录

redundancy冗余

routine例行程序

selector选择器,选择符

sentinel标记

sequence序列,顺序

sequential顺序的

serial串行的.连续的

shift移位,移数

signal信号

simulation模拟

simulator模拟器,模拟程序

software软件,软设备

sort分类,排序

sorter分类人员,分类机,分类程序,排序程序

storage存储器

tostore存储

subroutine,subprogram子程序

switch开关

symbol符号

symboliclanguage符号语言

system系统

tabulator制表机

teleprinter电传打字机

terminal终端

terminalunit终端设备

timer时钟,精密计时器

timesharing分时

timing定时

track磁道

transducer传感器,翻译机

translator翻译程序,翻译器

toupdate更新

Winchesterdiskdrive温彻斯特磁盘机,硬盘机

workingstorage工作存储器

method方法

function函数

procedure过程

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1