冒泡排序和二分查找

js的排序

我们这里只介绍一下冒泡排序法:[其它方法可以参考 php 的排序章节]

 

 

代码:

<html>

<head>

<meta http-equiv="content-type" content="text/html;charset=utf-8"/>

 

<script type="text/javascript">

 

var arr=[0,-1,90,-18,900,90,78];

 

var temp=0;

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]){

         //交换

         temp=arr[j];

         arr[j]=arr[j+1];

         arr[j+1]=temp;

       }

   }

 

     

}

 

//输出数组 

   document.write(arr);

 

</script>

</html>

js的查找

顺序查找

一个一个的比较,如果是则查找到.

 

var arr=[3,5,90,12,-23];

 

var findVal=90;

var flag=false;

for(var i=0;i<arr.length;i++){

 if(arr[i]= = findVal){

document.write(”找到了这个数 下标是”+i);

flag=true;

}

}

 

if(!flag){

document.write(”一个都没有找到”);

}

 

二分查找

面试题: 一定掌握!

 

//二分查找[递归]

 

//二分查找要保证我们的数组是一个有序的.

//思想是

//首先把数组的中间这个数找出,然后和你要查询的数比较

//① 你要查询的数比中间的数大. 则说明我们应当该数组的右边[后边]查询

//② 你要查询的数比中间的数小 .则说明我们应当该数组的左边[前边]查询

//③ 你要查询的数等于中间的数, 说明找到  

 

var arr=[1,90,100,123,4000];

 

function binarySearch(findVal,arr,leftIndex,rightIndex){

 

//退出条件

if(rightIndex<leftIndex){

document.write("查询没有结果");

return;

}

 

//代码:

//找到中间数的下标

var midIndex=Math.round((leftIndex+rightIndex)/2);

 

if(arr[midIndex]<findVal){

binarySearch(findVal,arr,midIndex+1,rightIndex);

}else if(arr[midIndex]>findVal){

    binarySearch(findVal,arr,leftIndex,midIndex-1);

}else{

document.write("找到 下标是"+midIndex);

//binarySearch(findVal,arr,leftIndex,midIndex-1);

}

 

}

 

//调用的格式

binarySearch(100,arr,0,arr.length-1);

时间: 2024-10-21 09:20:24

冒泡排序和二分查找的相关文章

JAVA冒泡排序和二分查找的实现_java

冒泡排序  冒泡排序(Bubble Sort),看到这种算法,我就想起一句话"小数上浮,大数下沉",通过层层的比较使小数浮出水面,而使大数"石沉水底".从而达到排序的效果.冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端. 冒泡排序算法的运作如下

PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解

数据结构很重要,算法+数据结构+文档=程序使用PHP描述冒泡排序算法,对象可以是一个数组 复制代码 代码如下: //冒泡排序(数组排序)function bubble_sort($array) { $count = count($array); if ($count <= 0) return false; for($i=0; $i<$count; $i++){ for($j=$count-1; $j>$i; $j–){ if ($array[$j] < $array[$j-1]){

冒泡排序、插入排序、选择排序、快速排序、二分查找(Objective-C实现)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 8

动态数组,数组初始化,数组内存释放,向数组中添加一个元素,向数组中添加多个元素,数组打印,顺序查找,二分查找,查找数组并返回地址,冒泡排序,改变数组中某个元素的值,删除一个数值,删除所有,查找含有

 1定义接口: Num.h #ifndef_NUM_H_ #define_NUM_H_   #include<stdio.h> #include<stdlib.h>   /************************************************************************/ /*数组的结构体类型                                                    */ /***************

js基本算法:冒泡排序,二分查找的简单实例_基础知识

知识扩充: 时间复杂度:算法的时间复杂度是一个函数,描述了算法的运行时间.时间复杂度越低,效率越高. 自我理解:一个算法,运行了几次时间复杂度就为多少,如运行了n次,则时间复杂度为O(n). 1.冒泡排序 解析:1.比较相邻的两个元素,如果前一个比后一个大,则交换位置. 2.第一轮的时候最后一个元素应该是最大的一个. 3.按照步骤一的方法进行相邻两个元素的比较,这个时候由于最后一个元素已经是最大的了,所以最后一个元素不用比较. function sort(elements){ for(var i

[算法]二分查找算法

[思想] 二分搜索主要解决的问题是确定排序后的数组x[0,n-1]中是否包含目标元素target. 二分搜索通过持续跟踪数组中包含元素target的范围(如果target存在数组中的话)来解决问题. 一开始,这个范围是整个数组,然后通过将target与数组中的中间项进行比较并抛弃一半的范围来缩小范围.该过程持续进行, 直到在数组中找到target或确定包含target的范围为空时为止.在有n个元素的表中,二分搜索大约需要执行lgn次比较操作. 提供充足的时间,竟然只有10%的专业程序员能够将这个

Python实现二分查找算法实例

  本文实例讲述了Python实现二分查找算法的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #!/usr/bin/env python import sys def search2(a,m): low = 0 high = len(a) - 1 while(low <= high): mid = (low + high)/2 midval = a[mid] if midval <

php 二分查找法算法详解

一.概念:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好:其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表.首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功:否则利用中间位置记录将表分成前.后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表.重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功. 二.代

使用PHP实现二分查找算法代码分享

第一种方法: [二分查找要求]:1.必须采用顺序存储结构 2.必须按关键字大小有序排列. [优缺点]折半查找法的优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难.因此,折半查找方法适用于不经常变动而查找频繁的有序列表. [算法思想]首先,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功:否则利用中间位置记录将表分成前.后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表. 复制代码 代码如下: <?