首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    JavaScript数字例子,二分,冒泡排序

    冒泡排序 将一组无规律的数据按照一定的规律排列下来 冒泡排序的原理: 这是将一组无规律的数据从大到小排列 ?...二分 在数组里查找数据,找到数据所在的索引 // 在数组里面查找数据,找到数据所在位置的索引 var arr = new Array(1,2,3,4,5,6,7,8,9,10);...这三种方法都可以找到数据的索引,这里着重看一下二分 二分查找的前提;数组必须为有序 思路:找到数组的中间数zjx和要查找的数a,若a<zjx,则要查找的数在中间数zjx的左边,就把数组二分,只在左边查找...二分对于数据特别多的情况能极大的节约效率。...在上面的二分中: 首先定义最大值  maxx,最小值  minx 中间值  zjx 也可以再循环中定义 我们不能确定循环的次数,所以这里使用  while  循环 首先找出中间值,中间值等于最大值和最小值的和除以

    1.2K50

    算法图解2-二分和选择排序

    二分查找 猜数字游戏 0-1000猜数字游戏: 普通查找:100,99,98,…,1,需要100步 二分查找:100--->50--->25--->13--->7--->4--->2--->...普通查找n步 attention:二分查找仅对有序列表有用 思想 折半查找,比较次数少,速度快,只能作用于有序数组和顺序表,当查找范围内只有一个数据的时候,结束查找。...最优时间复杂度:O(1) 最坏时间复杂度:O(logn) 运行时间 运行时间是通过大o()运行时间来表示 二分查找的速度比线性查找快的多,元素越多,快的越多 算法运行时间是从其增速的角度来度量的 ?...遍历循环每个元素和目标元素进行比较 if alist[i] == obj: return i return "{} not in the alist".format(obj) 选择排序...smallest_index = i return smallest_index # 返回索引值,pop方法需要 def selectSort(arr): # 选择排序

    68010

    数组排序 - 冒泡排序与直接选择排序

    花时间研究了一下两种不同的排序算法,下面给出介绍。 1 . 冒泡排序算法 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。...直接选择排序 选择排序是一种简单直观的排序算法。 其基本思想是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。...#include // 直接选择排序 int a[10]; void sort(int a[],int n){ int index; for(int i=1;i<...另外想要更快的去解决排序问题的话,可以下功夫去研究一下库里面的 qsort函数,也非常的实用!

    61810

    快速排序

    快速排序借用书上和百度的解释 在待排序的n个元素中取一个元素Key(通常取第一个元素),以元素Key作为分割标准,把所有小于Key元素的数据元素都移到K前面,把所有大于K元素的数据元素都移到K后面。...这样,以K为分界线,把线性表分割为两个子表,这称为一趟排序。然后,对K前后的两个子表分别重复上述过程。继续下去,直到分割的子表的长度为1为止,这时,线性表已经是排好序的了。...快速排序的算法是: 1)设置两个变量i、j,排序开始的时候:i=0,j=N-1; 2)以第一个数组元素作为关键数据,赋值给key,即key=A[0]; 3)从j开始向前搜索,即由后开始向前搜索(j--)...实例 #include using namespace std; void sort(int s[],int left,int right)//进行排序 { if(left<...right)//判断取的key两边的数组下标是否符合排序规则 { int i=left,j=right; int key=s[left]; while

    29640
    领券