Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

jQuery数组操作学习笔记

jQuery数组操作学习笔记

一点jQuery数组操作学习笔记。向数组中添加内容:Array类有3个方法用于向数组添加元素。push()方法向数组的末尾添加元素。unshift()方法向数组的开始位置添加元素(在0位置)。splice()方法通过指定数组的一个索引删除或者插入一个元素。splice()方法需要3个参数:新元素添加的索引位置、需要删除的元素(0代表没有)以及想要添加的元素。例如删除C这个元素 ,前提不知道C在这个数组的下标var arr = ["a","b","c","d...
中序遍历-----二叉查找树的遍历(迭代版,不使用栈或者队列)

中序遍历-----二叉查找树的遍历(迭代版,不使用栈或者队列)

二叉查找树(Binary Search Tree)的遍历的方法有很多,通常使用的是递归的遍历,其便于理解,但是使用递归的话会造成程序运行的空间浪费,效率并不高。为此可以使用一个栈来模拟递归的过程,实现迭代版的二叉查找树的遍历。但是会使用到额外的存储空间,虽说在运行效率上比递归版的有所提高,但是额外的存储空间还是一定的浪费。但是如何减少额外的存储空间呢?我们知道二叉查找树是可以转换为一个双向环形链表(二叉查找树与双向环形链表的转化),而链表的遍历是不需要额外...
寻找数组中前K个最小的数(Kth smallest element)---(堆排序的应用)

寻找数组中前K个最小的数(Kth smallest element)---(堆排序的应用)

日常生活中我们总是遇到求解一个数组的最小值或者最大值等问题,这些问题基本上都可以在线性时间复杂度内完成,但是如果需要寻找数组的前K个最小值时该怎么做呢?最一般的想法就是将数组排序,然后取出排序后的数组的前k个元素即可,这种算法的时间复杂度也就是排序的时间复杂度为O(NlogN)。但是仔细一想发现,我们没有必要对所有的数进行排序,因为我们只用到了排序后的前K个数,为此可以考虑只找出排序的前K个数即可。这就让我们联想到了堆排序的过程。堆排序分为两部分,一部分是...
多数投票算法(Majority Vote Algorithm)

多数投票算法(Majority Vote Algorithm)

假设有一个数组,其中含有N个非负元素,求其中是否存在一个元素其元素个数大于等于N/2。分析:看到这个问题最先想到的是暴力算法,将数组在O(NlogN)的时间内进行排序,然后扫描一次数组就知道是否存在满足条件的元素了。算法实现:int Majority_Vote_Sort(const int* a, const int n){sort(a,n);int count=0;int max = 0;int now = a[0];int res = a[0];for...
大-小顶混合堆的实现与应用(a min-max heap)

大-小顶混合堆的实现与应用(a min-max heap)

一般情况下我们使用的堆都是大顶堆或者小顶堆,其能实现在常数时间内获得数组的最大值或者最小值,同时满足在对数时间内删除和插入元素。但是如果要同时实现即能在常数时间内获得最大值和最小值,又能在对数时间内删除和插入元素,通常情况下的堆就不能满足上述要求了。为此介绍一种新的数据结构min-max heapmin-max heap 是一颗完全二叉树,但是二叉树的奇数层存的是max元素,偶数层存的是min元素,也即在以偶数层的某节点为根节的子树中,根节点最大,若在以奇...
算法---快速排序(quick sort)

算法---快速排序(quick sort)

在前面介绍的排序算法中,最快的排序算法为归并排序(http://www.linuxidc.com/Linux/2014-11/109824.htm),但是归并排序有一个缺陷就是排序过程中需要O(N)的额外空间。本文介绍的快速排序算法时一种原地排序算法,所需的额外空间复杂度为O(1)。堆与堆排序 http://www.linuxidc.com/Linux/2014-09/107318.htm归并排序的实现 http://www.linuxidc.com/Li...
算法---归并排序(Merge Sort)---多版本对比

算法---归并排序(Merge Sort)---多版本对比

归并排序是一种利用“分治”手段来实现的排序方法,其通过二分将数组分为若干个有序的子数组,然后再将这些子数组合并到一起组成一个新的数组。归并排序的实现 http://www.linuxidc.com/Linux/2014-09/107316.htm直接插入排序的三种实现 http://www.linuxidc.com/Linux/2014-09/107313.htm直接选择排序及交换二个数据的正确实现 http://www.linux...
算法----希尔排序(shell sort)

算法----希尔排序(shell sort)

在分析插入排序(插入排序算法实现)的算法性能的过程时知道,当数组规模较小或者存在较多的有序子序列时,插入排序将会在很短的时间内完成数组的排序,为此可以设计一个单调序列h[n],将数组分为多个小的序列,然后这些小的序列使用插入排序。h[n]={1,4,7,10,13,16,19……,3*x+1}。算法实现:void sort::shell_sort(int* a, const int n){int h = 0;while (h&l...
支持 Markdown 的网页 slides 工具总结

支持 Markdown 的网页 slides 工具总结

在注重效率的今天,很多人都不喜欢制作 PPT,特别是技术人员。流行的 PPT 制作工具往往需要用户关注太多内容无关的细节。而像 TeX 这样强大的系统又似乎太过于重量级了。现在越来越流行制作网页格式的 slides,并通过浏览器来播放和发布。 这样做有很多优点:包括跨平台(特别在移动端)、无需特殊软件支持、分享方便、轻量级等。可惜并不是所有人都精通网页编程技术,即便是最常见的 html 和 css,也常常造成 slides 编写人员的困扰。一款最理想的 s...
Qt 5入门指南之Qt Quick编程示例

Qt 5入门指南之Qt Quick编程示例

使用Qt创建应用程序是十分简单的。考虑到你的使用习惯,我们编写了两套教程来实现两个相似的应用程序,但是使用了不同的方法。在开始之前,请确保你已经下载了QtSDK的商业版本或者开源版本,并且你也已经熟悉了Qt的开发工具。QtSDK提供了QtCreator集成开发环境使得开发Qt的应用程序十分简单。用户界面的选择除了直观上知道Qt是跨平台的,提供了包括线程,网络通信以及视频回放和网络摄像头等的跨平台抽象外,Qt提供了两种独立的方法创建用户界面。QtQuick模...
Java创建线程的三种方式及其对比

Java创建线程的三种方式及其对比

Java中创建线程主要有三种方式:一、继承Thread类创建线程类(1)定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。因此把run()方法称为执行体。(2)创建Thread子类的实例,即创建了线程对象。(3)调用线程对象的start()方法来启动该线程。使用Java线程池执行任务 http://www.linuxidc.com/Linux/2014-11/108794.htmpackage com.thre...
Python 字符串编解码研究

Python 字符串编解码研究

Python 2.X 在输入汉字和特殊字符的时候,经常遇到编码解码的问题,究其原因,编译器默认将文件当做ascii编码,因此要正确的实现编解码的转换,需要进行一些设置。首先让我们来了解几个概念。文件编码、字符串编码、系统编码代码中字符串的默认编码与代码文件本身的编码一致。举个例子,如果是在utf8的文件中,那么字符串就是utf8编码;如果是在gb2312的文件中,则其编码为gb2312。 但是,如果指明了字符串为unicode字符串,那么就是unicode...
<< 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 >>