标题: 赵强-20221008-前端预科4 [打印本页] 作者: BlueFlame 时间: 2022-10-8 23:34 标题: 赵强-20221008-前端预科4 一、近日学习内容:
(1)算法:是在有限的步骤范围内,求解某一问题,所定义明确的规则
特点:
明确性:算法的每一个步骤都是明确定,能有效执行且可以得到有效结果
有限性:算法由限的步骤组成,必须在有限的操作停止,并且给出操作结果
有序性:算法从初始步骤开始每一步都只能有一个确定的继任者,只有执行完前一步才能执行后一步
不唯一性:求解某一问题的解法不是唯一的,对于同一个问题可以有不同的解法,算法有优劣之分
普适性:写出的算法必须能解决一类问题,并且能够重复使用,这是设计算法的一条基本原则
(2)流程图:椭圆框(开始、结束)、矩形框(判断条件)
(3)伪代码:一种算法描述语言,使用伪代码的目的是为了被描述的算法可以被更容易的算法实现
特点:
1.必须要结构保持清晰,代码简单,可读性好
2.伪代码是类似于自然语言的描述,是介于自然语言与编程语言之间的
3.以编程语言的书写形式来指明算法的作用
4.不用拘泥于具体代码的实现
赋值语句: 用⬅表示 将右边的值赋值给左边
x<-- -->y ; 表示将x与y的值互换 (注意分号)
选择控制语句: if----else----else if (elif)
if x > 0 then
打印x为正数
end
if x > 0 then
打印x为正数
else
打印x为非正数
循环控制语句:
while循环:在初始阶段要进行条件判断,条件为真时执行循环,条件为假时终止循环
例:x <-- 1 ;
whlie x < 10 do
打印出x的值
x = x + 1;
end
for循环: 循环次数受限制的循环语句
例:for i <-- 0 to 10
打印出 i 的值
end
伪代码的常用表达式:
i++ ; ++i i = i + 1 将变量 i 的值加一
x /=2 x = x / 2
x == y 判断x 与 y 相等
a & b a 和 b
a || b a 或 b
break 停止循环并且跳出
continue 跳出当前循环进入下一次循环
(4)冒泡排序 第一次比较将最大的数排在最后面,第二次比较将次大数排在倒数第二位 ......直至将顺序排好
js代码实现:
function bubbleSort2(arr) {
console.time('改进后冒泡排序耗时');
var i = arr.length-1; //初始时,最后位置保持不变
while ( i> 0) {
var pos= 0; //每趟开始时,无记录交换
for (var j= 0; j< i; j++)
if (arr[j]> arr[j+1]) {
pos= j; //记录交换的位置
var tmp = arr[j]; arr[j]=arr[j+1];arr[j+1]=tmp;
}
i= pos; //为下一趟排序作准备
}
console.timeEnd('改进后冒泡排序耗时');
return arr;
}