0  430504  430512  430518  430522  430528  430530  430534  430540  430542  430548  430554  430558  430560  430564  430570  430572  430578  430582  430584  430588  430590  430594  430596  430598  430599  430600  430602  430603  430604  430606  430608  430612  430614  430618  430620  430624  430630  430632  430638  430642  430644  430648  430654  430660  430662  430668  430672  430674  430680  430684  430690  430698  447090 

2.将新数据列中的第2个数49与右边相邻的数65进行比较,因为65>49,所以顺序不变,得到新的数据列:

{38,49,65,97,76,13,27,49}

试题详情

1.将第1个数与右边相邻的数38进行比较,因为38<49,49应下沉,即向右移动,所以交换他们的位置,得到新的数据列:

{38,49,65,97,76,13,27,49}

试题详情

3.排序

排序的算法很多,课本主要介绍里两种排序方法:直接插入排序和冒泡排序

(1)直接插入排序

在日常生活中,经常碰到这样一类排序问题:把新的数据插入到已经排好顺序的数据列中。

例如:一组从小到大排好顺序的数据列{1,3,5,7,9,11,13},通常称之为有序列,我们用序号1,2,3,……表示数据的位置,欲把一个新的数据8插入到上述序列中。

完成这个工作要考虑两个问题:

(1)确定数据“8”在原有序列中应该占有的位置序号。数据“8”所处的位置应满足小于或等于原有序列右边所有的数据,大于其左边位置上所有的数据。

(2)将这个位置空出来,将数据“8”插进去。

对于一列无序的数据列,例如:{49,38,65,97,76,13,27,49},如何使用这种方法进行排序呢?基本思想很简单,即反复使用上述方法排序,由序列的长度不断增加,一直到完成整个无序列就有序了。

首先,{49}是有序列,我们将38插入到有序列{49}中,得到两个数据的有序列:

{38,49},

然后,将第三个数据65插入到上述序列中,得到有序列:

{38,49,65}

…………

按照这种方法,直到将最后一个数据65插入到上述有序列中,得到

{13,27,38,49,49,65,76,97}

这样,就完成了整个数据列的排序工作。注意到无序列“插入排序算法”成为了解决这类问题的平台。

(2)冒泡法排序

所谓冒泡法排序,形象地说,就是将一组数据按照从小到大的顺序排列时,小的数据视为质量轻的,大的数据视为质量沉的。一个小的数据就好比水中的气泡,往上移动,一个较大的数据就好比石头,往下移动。显然最终会沉到水底,最轻的会浮到顶,反复进行,直到数据列排成为有序列。以上过程反映了这种排序方法的基本思路。

我们先对一组数据进行分析。

设待排序的数据为:{49,38,65,97,76,13,27,49}

排序的具体操作步骤如下:

试题详情

2.秦九韶算法

秦九韶算法的一般规则:

秦九韶算法适用一般的多项式f(x)=anxn+an-1xn-1+….+a1x+a0的求值问题。用秦九韶算法求一般多项式f(x)= anxn+an-1xn-1+….+a1x+a0当x=x0时的函数值,可把n次多项式的求值问题转化成求n个一次多项式的值的问题,即求

v0=an

v1=anx+an-1

v2=v1x+an-2

v3=v2x+an-3

……..

vn=vn-1x+a0

观察秦九韶算法的数学模型,计算vk时要用到vk-1的值,若令v0=an

我们可以得到下面的递推公式:

v0=an

vk=vk-1+an-k(k=1,2,…n)

这是一个在秦九韶算法中反复执行的步骤,可以用循环结构来实现。

试题详情

1.求最大公约数

(1)短除法

求两个正整数的最大公约数的步骤:先用两个数公有的质因数连续去除,一直除到所得的商是两个互质数为止,然后把所有的除数连乘起来。

(2)穷举法(也叫枚举法)

穷举法求两个正整数的最大公约数的解题步骤:从两个数中较小数开始由大到小列举,直到找到公约数立即中断列举,得到的公约数便是最大公约数 。

(3)辗转相除法

辗转相除法求两个数的最大公约数,其算法可以描述如下:

① 输入两个正整数m和n;

② 求余数r:计算m除以n,将所得余数存放到变量r中;

③更新被除数和余数:m=n,n=r;

④判断余数r是否为0。若余数为0,则输出结果;否则转向第②步继续循环执行。

如此循环,直到得到结果为止。

(4)更相减损术

我国早期也有解决求最大公约数问题的算法,就是更相减损术。在《九章算术》中记载了更相减损术求最大公约数的步骤:可半者半之,不可半者,副置分母•子之数,以少减多,更相减损,求其等也,以等数约之。

步骤:

Ⅰ.任意给出两个正数;判断它们是否都是偶数。若是,用2约简;若不是,执行第二步。

Ⅱ.以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。继续这操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数。

试题详情

算法是高中数学新课程中的新增内容,本讲的重点是几种重要的算法案例思想,复习时重算法的思想轻算法和程序的构造。

预测2007年高考队本讲的考察是:以选择题或填空题的形式出现,分值在5分左右,考察的热点是算法实例和传统数学知识的结合题目。

试题详情

程序每执行一次循环体,循环条件中涉及到的变量就会发生改变,正在步步逼近满足跳出循环体的条件。

试题详情

程序中最忌“死循环”。所谓的“死循环”就是指该循环条件永远成立,没有跳出循环体的机会。

试题详情

请看我们用WHILE循环实现1到100累加为例,做一下说明:

“1+2+……+100”

部分程序如下:

sum = 0

i =1

WHILE  i <= 100

sum = sum+ i

i=i+1

WEND

这段程序中,循环的条件是“i <= 100”;因此,一开始i肯定需要一个确定的值。前面的

 “i = 0”这一个语句,在声明变量i的同时,也为i赋了初始值“1”。这样,条件 i <= 100 得以成立(因为i为1,所以 条件“i <= 100” 当然成立)。

试题详情


同步练习册答案