堆排序算法的时间复杂度为O(nlgn).在堆排序算法中,我们使用的是最大堆。(1)初始时候,堆排序算法利用BUILD-MAX-HEAP将输入数组A[1..n]建成最大堆。此时堆的根结点是最大元素,且该元素位于数组A[1]。接着将A[1]与A[n]互换,则可以将A[1..n]中的最大值置于A[n]。(...
分类:
其他好文 时间:
2014-07-22 23:16:35
阅读次数:
404
/**************************************************************************************
* Function : 快速排序 * Create Date :...
分类:
其他好文 时间:
2014-04-30 23:09:34
阅读次数:
458
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。通常堆是通过一维数组来实现的。在起始数组为
0 的情形中:父节点i的左子节点在位置 (2*i+1);父节点i的右子节点在位置...
分类:
其他好文 时间:
2014-04-30 17:13:32
阅读次数:
464
对于包含N个数的输入数组来说,快速排序是一种最坏情况时间复杂度为O(n2)的排序算法。虽然最坏情况时间复杂度很差,但是快速排序通常是实际排序应用中最好的选择,因为它的平均性能非常好:它的期望时间复杂度是O(nlgn),而且O(nlgn)中的隐藏因子非常小。另外,它还能够进行原址重排,甚至在虚存环境中...
分类:
其他好文 时间:
2014-04-29 21:54:47
阅读次数:
508
接触php这么久了,也就用过三种排序,冒泡排序,快速排序,木桶排序,今天就来学习一下冒泡排序:那么什么是冒泡排序,就像河里的气泡一样,一个一个的气泡浮出水面,而这里是一个一个的数字,他的原理是重复的走访(遍历)要排序的数列,比较相邻的两个数,把大的数移到右边,接着遍历,直到所有数完成从小到大的顺序。...
分类:
Web程序 时间:
2014-04-29 14:01:30
阅读次数:
571
利用挖坑填数+分治实现的快排代码如下:import
java.io.BufferedReader;import java.io.IOException;import
java.io.InputStreamReader;import java.util.Formatter;import java.ut...
分类:
其他好文 时间:
2014-04-29 10:33:46
阅读次数:
404
最直观的解法,排序之后取下标为k的值即可。但是此处采取的方法为类似快速排序分块的方法,利用一个支点将序列分为两个子序列(支点左边的值小于支点的值,支点右边大于等于支点的值)。如果支点下标等于k,则支点就是查找的值,如果支点的下标大于k,则在左子序列里继续寻找,如果支点下标小于k,则继续在支点右子序列...
分类:
其他好文 时间:
2014-04-28 14:20:26
阅读次数:
458
(1)主要用了paint ,canvas 两个类中的方法
(2)主要用了画线和画圆的方法。
(3)drawline(起始点轴坐标,起始点y轴坐标,终点轴坐标,终点y轴坐标)
(4)drawcircle(圆心x轴坐标,圆心y轴坐标,半径,画布)
效果图:
直接上代码了:
package com.example.drawpicture;
import android.conten...
分类:
移动开发 时间:
2014-04-27 22:44:20
阅读次数:
364