JavaScript用二分法查找数据等

 //二分法查数据
 var arr=[41,43,45,53,44,95,23];
 var b=44;
 var min=0;
 var max=arr.length;
 for(var i=1;i<arr.length;i++){  //外层循环控制排序的次数
	for(var j=0;j<arr.length-i;j++){//内层循环控制循环的个数
		if(arr[j]<arr[j+1]){
		z=arr[j];
		arr[j]=arr[j+1];
		arr[j+1]=z;
		}
		 }
		  }
		//  alert(arr[3])
   while(true){                                                  二分查数就是先把一组数据按顺序排好后,从中间将这一组数据一分为二,看想要查得数在哪个范围内,然后再一分为二,直到找
/* for(var i=0;i<arr.length;i++)*/    //这么写不对?                           这个数为止
	 var zjs=parseInt((min+max)/2); //因为(min+max)/2有可能为小数,所以加上一个整数强制转换
	 if(zjs==min){       当要查找数的数组为一个偶数个数的数组的时候最后剩下的数的个数为2的时候,需要加个条件再给判断一下
		 if(b=arr[zjs+1]){
			 alert(zjs+1);
			 break;
			 }
			 }
	 if(b==arr[zjs]){
		 alert(zjs)
		 break;}
	 else if(b>arr[zjs]){
		min=zjs; }
		else{max=zjs}}

  

10个成绩求总分,最高分,最低分
var arr = new Array(80,70,86,58,90,35,89,67,50,100);
	var sum = 0;
	var maxd = 0;
	var mind = 100;   //想要查最小数最好用满分最大数做可以比较的基数
	for(var i=0;i<arr.length;i++){
		sum = sum +arr[i];
		if(arr[i]>maxd){
			maxd = arr[i];
		}
		if(arr[i]<mind){
			mind = arr[i];
		}
	           }
	alert(sum);
	alert(maxd);
	alert(mind);

  往数组添加一个不重复的数

//var a=7;
 var a=parseInt(prompt("请输入一个数"));
 var x=0;
 var arr=[1,2,3,4,5]
  for(var i=0;i<arr.length;i++){
	  if(a==arr[i]){
		  x=1;
		  break;}}
	   if(x==0){
		   arr.push(a)}
		   alert(arr.length)

  二分法查找数据之前没有接触过类似的题,思路想不出,老师讲完以后还是似懂非懂的样子,自己敲出以后才感觉是懂了,冒泡排序看着挺容易的,但是到了自己去亲自敲代码的时候,自己又出错,不能总是比着葫芦画瓢,应该有自己的理解,为什么要这么敲,多多敲敲代码,避免以后再出类似的小错误,自己定义的变量要记住,前后呼应起来,不能定义的时候用的一个,用的时候又是另一个,还有分号记得加,花括号记得加。

时间: 2024-12-22 01:36:01

JavaScript用二分法查找数据等的相关文章

java的二分法查找数据

Java二分法查找的源代码:    二分查找是一种高效率线性表的查找算法.在查找时必须将线性表中的关键词排好序.基本思路是:先断定线性表的中心方位 mid=(first+last)/2:对比所要查找的关键词 key与中心方位的关键词的巨细,假如比key和mid.key持平则回来: key比mid.key大(假定为升序)这所要查找的关键词在mid和last之间:否则在first与mid之间.持续按照上面办法查找中心元素,直到找到为止.    详细完成如下package com.cgogo; /**

三 、二分法查找数据

原理如图所示,对于有序数组才可以进行二分查找. 源代码: /* 二分法查找数据*/ public int TowDiviSearch(int value) { int middle=0; int low =0; int pow =element; while(true) { middle = (low + pow ) /2; if(array[middle] == value) { return middle; } else if(low > pow) { return -1; } else {

java练习题:输出100以内与7有关的数、百马百担、打分(去掉最高、最低分)、二分法查找数据

1.输出100以内与7有关的数 注: 这些数分为三类:(1)7的倍数,(2)个位数字是7的数,(3)十位数字是7的数 int i=1; System.out.println("输出100以内与7有关的数:"); for(i=1;i<=100;i++){ if(i%10==7 | i%7==0|i/10==7 ){//符合条件的三类数 System.out.println(i); } else{ } 2.百马百担 注: 有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担

javaScript(拼写树形)+ajax请求,去后台查找数据

第一步:页面加载完成时,利用jquery中的一函数,调用js方法,js方法,发送ajax请求,去后台查找父类权限集合,响应回来json格式的数据,对数据进行操作,往页面上添加内容 1 //页面初始化加载菜单内容 2 $(document).ready(function(){ 3 loadPower(0); 4 }); 5 6 //加载一级权限菜单 7 function loadPower(pId){ 8 $.ax({ 9 type: "get", 10 url: "<%

如何使用JavaScript和正则表达式进行数据验证

利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作,下面与大家分享下如何使用JavaScript和正则表达式进行数据验证,感兴趣的朋友可以参考下哈 数据验证是网络应用软件从客户端接受数据的重要步骤,毕竟,您需要在使用客户数据前确保其符合预期的格式.在网络应用程序中,您可以选择使用特定平台的工具,比如ASP.NET.JSP等等,或者您可以利用客户端JavaScript的优势,JavaScript中的正则表达式可以简化数据验证的工作. 正则表达式 正则表达

数组排序 和 二分法查找

二分法查找 当数据量很大适宜采用该方法.采用二分法查找时,数据需是有序不重复的. 基本思想:假设数据是按升序排序的,对于给定值 x,从序列的中间位置开始比较,如果当前位置值等于 x,则查找成功:若 x 小于当前位置值,则在数列的前半段中查找:若 x 大于当前位置值则在数列的后半段中继续查找,直到找到为止. 假设有一个数组 {5,4,2, 67, 77, 89, 90,4,9,1,12, 23, 34, 45, 56 },现要求采用二分法找出指定的数值并将其在数组的索引返回,如果没有找到则返回 -

php常见的几种排序以及二分法查找

<?php 1.插入排序 思想: 每次将一个待排序的数据元素插入到前面已经排好序的数列中,使数列依然有序,知道待排序数据元素全部插入完为止. 示例: [初始关键字] [49] 38 65 97 76 13 27 49J=2(38) [38 49] 65 97 76 13 27 49J=3(65) [38 49 65] 97 76 13 27 49J=4(97) [38 49 65 97] 76 13 27 49J=5(76) [38 49 65 76 97] 13 27 49J=6(13) [1

二分法查找和快速排序

二分法是分治算法的一种特殊形式,利用分治策略求解时,所需时间取决于分解后子问题的个数.子问题的规模大小等因素,而二分法,由于其划分的简单和均匀的特点,是查找数据时经常采用的一种有效的方法. 快速排序的实质也是二分法,下面就写一个快速排序+二分法查找的栗子??: 1 #include<stdio.h> 2 3 4 //快速排序 5 void QuickSort(int * a,int left,int right) 6 { 7 if(left>right) 8 { 9 return; 10

二分法查找(数组元素无序)

问题描述: 一数组,含有一堆无序数据,首先将数据按顺序排列,再用二分法实现某个元素的查找,若找到,返回该元素在数组中的下表,否则,返回不存在提示信息. #include<stdio.h> #include<stdlib.h> int *bubble_sort(int a[],int n)//冒泡排序(将数据升序排列) { int i; int j; int tmp; for(j=0;j<n-1;++j)//n个元素需要排序n-1趟 { for(i=0;i<n-j-1;+