JavaScript_day07

day07内容

学习目标
1.循环语句do-while语句
2.循环语句while语句
3.循环语句for-in 语句,遍历对象
4.循环关键字
5.冒泡排序
6.选择排序
7.插入排序

1.do-while语句
do{
}while(condition);
后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。循环体内的代码最少被执行一次。

2.while语句
while(condition){
}
前测试循环语句,即在循环体内的代码被执行之前,就会对出口条件求值。因此,循环体内的代码有可能永远不会被执行。
while(false){
//
}
3.for-in 语句
是一种精准的迭代语句,可以用来枚举对象的属性
for(property in expression){
statement
}
例如:
打印出window对象中所有的属性
for(var propName in window){
console.log(propName);
}
label 语句
使用label可以在代码中添加标签,以便将来使用
label : for(int i=0;i<10;i++){
if(i == 5){
break label;
}
}
4.循环关键字
break 跳出循环体
continue 结束本次循环,进行下一次循环
5.冒泡排序 Bubble Sort
计算机科学领域的较简单的排序算法
原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码实现:
var arr = [223, 4, 5, 734, 2, 33, 23, 99];
for (var i = 0; i < arr.length-1; i++) { //控制比较几轮
for (var j = 0; j < arr.length - 1 - i; j++) { //控制每轮内的比较
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
第一轮 [ 4, 22, 223, 2, 77, 23, 99, 734 ]
第二轮 [ 4, 22, 2, 77, 23, 99, 223, 734 ]
第三轮 [ 4, 2, 22, 23, 77, 99, 223, 734 ]
第四轮 [ 2, 4, 22, 23, 77, 99, 223, 734 ]
第五轮 [ 2, 4, 22, 23, 77, 99, 223, 734 ]
第六轮 [ 2, 4, 22, 23, 77, 99, 223, 734 ]
第七轮 [ 2, 4, 22, 23, 77, 99, 223, 734 ]

6.选择排序 Selection sort
简单直观的排序算法
算法原理:
第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法
选择排序算法思想:在冒泡排序上做了优化,减少了交换次数,在首轮选择最大的数放在第一项,一轮之后第一项是有序的了,第二轮从第二项开始选择最大的数放在第二项,以此类推,直到整个数组完全有序。
代码实现:
var arr = [223, 4, 22, 734, 2, 77, 23, 99];
for (var i = 0; i < arr.length - 1; i++) {
//假设0位是最小的
var minIndex = i;
//从之后的元素中找最小的
for (var j = i + 1; j < arr.length; j++) {
if(arr[j] < arr[minIndex]){
minIndex = j;
}
}
var temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
console.log(arr,‘第几轮’);
}
console.log(arr);
第一轮[ 2, 4, 22, 734, 223, 77, 23, 99 ]
第二轮[ 2, 4, 22, 734, 223, 77, 23, 99 ]
第三轮[ 2, 4, 22, 734, 223, 77, 23, 99 ]
第四轮[ 2, 4, 22, 23, 223, 77, 734, 99 ]
第五轮[ 2, 4, 22, 23, 77, 223, 734, 99 ]
第六轮[ 2, 4, 22, 23, 77, 99, 734, 223 ]
第七轮[ 2, 4, 22, 23, 77, 99, 223, 734 ]
7.插入排序 Insertion sort
简单直观且稳定的排序算法
算法原理:
插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元素插入到已排好序的第一部分中。
插入排序的基本思想是:每步将一个待排序的记录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。
代码实现:
var arr = [223, 4, 22, 734, 2, 77, 23, 99];
for (var i = 1; i < arr.length; i++) {
for (var j = i - 1; j >= 0; j–) {
if(arr[j] > arr[j + 1]){
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
第一轮[ 4, 223, 22, 734, 2, 77, 23, 99 ]
第二轮[ 4, 22, 223, 734, 2, 77, 23, 99 ]
第三轮[ 4, 22, 223, 734, 2, 77, 23, 99 ]
第四轮[ 2, 4, 22, 223, 734, 77, 23, 99 ]
第五轮[ 2, 4, 22, 77, 223, 734, 23, 99 ]
第六轮[ 2, 4, 22, 23, 77, 223, 734, 99 ]
第七轮[ 2, 4, 22, 23, 77, 99, 223, 734 ]

note

学习目标
1.循环语句do-while语句
2.循环语句while语句
3.循环语句for-in 语句,遍历对象
4.循环关键字
5.阶乘累加 1!+2!+3!+4!+5!+…
6.递归

1.do-while语句
do{

}while(condition);
后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。循环体内的代码最少被执行一次。

2.while语句
初始条件
while(condition){
//循环体
//迭代条件
}
前测试循环语句,即在循环体内的代码被执行之前,就会对出口条件求值。因此,循环体内的代码有可能永远不会被执行。
while(false){
//
}
3.for-in 语句
是一种精准的迭代语句,可以用来枚举对象的属性
for(property in expression){
statement
}
例如:
打印出window对象中所有的属性
for(var propName in window){
console.log(propName);
}
label 语句
使用label可以在代码中添加标签,以便将来使用
label : for(int i=0;i<10;i++){
if(i == 5){
break label;
}
}
4.循环关键字
break 跳出循环体
continue 结束本次循环,进行下一次循环

发布了40 篇原创文章 · 获赞 1 · 访问量 713

猜你喜欢

转载自blog.csdn.net/hanmiao12345/article/details/105229744
今日推荐