二叉搜索树特点
二叉搜索树(Binary Search Tree),它或者是一棵空树,或者是具有下列性质的二叉树;若它的左子树不空,则左子树上的所有结点的值均小于它的根节点的值;若她的右子树不空,则右子树上所有结点的值均大雨它的根节点的值;它的左、右子树也分别为二叉排序树。二叉搜索树作为一种经典的数据结构,它既有链表的快速插入与删除操作的特点,又有数组快速查找的优势;所以应用十分广泛,例如在文件系统和数据库系统一半会采用这种数据结构进行高效率的排序与检索操作。
冒泡排序如何优化?
传统冒泡排序中每一趟排序操作只能找到一个额最大值或最小值。考虑利用在每趟排序中进行正向和反向两边冒泡的方法一次可以得到两个最终值(最大者和最小者),从而使排序趟数几乎减少了一半。
function bubble(arr){
var low=0;
var high=arr.length-1; //设置变量初始化
var tmp,j;
console.time('改进后冒泡排序耗时')
while(low<high){
for(j=low;j<high;++j){ // 正向冒泡找到最大值
if(arrr[j]>arr[j+1]){
tmp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
--high; // 修改high值,前移一位
for(j=high;j>low;--j){ // 反向冒泡找到最小值
if(arr[j]<arr[j-1]){
tmp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=tmp;
}
++low; // 修改low值,后移一位
}
console.timeEnd('改进后冒泡排序耗时')
return arr2
}
console.log(bublle(arr2))
}
}
小程序打开页面数量
最多可以打开10层,但是可以通过类似的redirectTo方法在最后一层进行无限的跳转,但是这样做会无法返回上一个页面,只能返回路由栈中的上一层级
小程序数据缓存:
wx.setStorageSync
wx.getStorageSync
小程序路由跳转区别?
wx.switchTab:只能跳转到导航页,并关闭其他的导航页
wx.reLaunch:关闭所有页面,打开到应用内的某个页面
wx.redirectTo:关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到导航页面
wx.navigateTo:只保留当前页面,跳转到应用内的某个页面。但是不能跳转到tabbar页面(最多10层)
wx.navigateBack:返回上一页,可以返回多级页面
小程序为什么使用双线程?
小程序的渲染层和逻辑层分别由两个线程管理:渲染层的界面使用webView进行渲染;逻辑层采用jsCore运行js代码。一个小程序存在多个界面,所以渲染层存在多个webView。这两个线程间的通信经由小程序native侧中转,逻辑层发送网络请求也经由native侧转发。
微信限制
微信小程序里不可长按微信二维码