每个学过编程的人都写过“HelloWorld”
但99乘法表、冒泡排序这类程序,我想也应该成为每个编程初学者的必编程序
这是JavaScript的实现方法,非常适合初学者!!!
1.在网页中打印99乘法表
例如: 1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
......
我写的程序如下:
for (var i = 1;i<=9; i++) {
<span style="white-space:pre"> </span> for (var j = 1; j<= i;j++) {
<span style="white-space:pre"> </span> document.write(i + " * " +j + " = "+i*j + " ");
<span style="white-space:pre"> </span> }
<span style="white-space:pre"> </span> document.write("<br />");
<span style="white-space:pre"> </span>}
document.write("第二题:<br />");
2.编写函数,对给定数组排序。
我选择了冒泡排序来排数组。
<span style="white-space:pre"> </span>function mp1 (list){
<span style="white-space:pre"> </span>var n = list.length;
<span style="white-space:pre"> </span>var tmp;
<span style="white-space:pre"> </span>var exchange;
<span style="white-space:pre"> </span>for (var time = 0; time< n-1;time++ ){
<span style="white-space:pre"> </span>exchange = false;
<span style="white-space:pre"> </span>for(var i = n - 1; i> time; i--){
<span style="white-space:pre"> </span>if (list[i] <list[i -1 ]) {
<span style="white-space:pre"> </span>exchange = true;
<span style="white-space:pre"> </span>tmp = list[i-1];
<span style="white-space:pre"> </span>list[i-1] = list[i];
<span style="white-space:pre"> </span>list[i] = tmp;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>if (!exchange) {
<span style="white-space:pre"> </span>break;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>document.write(list + " : " + time);
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>var arr1 = [1,2,3,4,5,6,7,8,9,78];
<span style="white-space:pre"> </span>mp1(arr1);
3.编写函数,查找一个有序数组是否包含某个值。(折半查找)
<span style="white-space:pre"> </span>function halfSearch(arr,num){
<span style="white-space:pre"> </span>var first = 0;
<span style="white-space:pre"> </span>var last = arr.length-1;
<span style="white-space:pre"> </span>var middle = 0;
<span style="white-space:pre"> </span>while(first <= last){
<span style="white-space:pre"> </span>middle = parseInt((first+ last)/2);
<span style="white-space:pre"> </span>if (num == arr[middle]){
<span style="white-space:pre"> </span>document.writeln(arr[middle] + "的位置是" + middle + "。");
<span style="white-space:pre"> </span>break;
<span style="white-space:pre"> </span>}else if(num < arr[middle]){
<span style="white-space:pre"> </span>last = middle -1;
<span style="white-space:pre"> </span>}else {
<span style="white-space:pre"> </span>first = middle+1;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>return arr[middle];
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>var arr_1= [-1,1,5,8,9,12,100,1000,1111];
<span style="white-space:pre"> </span>var num = 100;
<span style="white-space:pre"> </span>var a = halfSearch(arr_1,num);
<span style="white-space:pre"> </span>document.writeln(a);
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。
因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的
关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置
记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的
记录,使查找成功,或直到子表不存在为止,此时查找不成功。