快速排序是一种非常高效的基于比较的排序算法,其能在O(NlogN)的时间复杂度内完成排序。当然,这是期望运行时间,实际上也可能是O(N^2)。这取决与算法划分的是否平衡。快速排序算法的实现过程依赖于分治思想,按照分解、解…
数组中个数大于N/k的数
题一:数组arr,打印出数组中个数大于一半的数 public int solve(int[] arr) { int num = 0, time = 0; for (int i = 0; i < arr.length…
算法之将字符串的部分移动
算法题:给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符’a’和’b’移动到字符串的尾部,使得原字符串…
归并排序C++版
归并排序首先找中间节点。如果是链表,利用快慢指针寻找中间节点,如果是数组,直接使用(start+end)/2找到中间节点位置,链表版本中,需要O(1)的空闲复杂度去存一个头节点,而数组版本,需要O(N)的空间复杂度需要构…
2014暑期实习的一道面试题
本人参加了某社交网络公司2014年暑期实习生招聘,投的岗位是PC客户端开发,笔试和面试问题都是c++和数据结构,计算机网方面的,由于最近一年都是搞的java,c++已经很久没看了,很多问题都答不上来,所以被刷了,回来决定…
算法-快速排序
快速排序 快速排序是一种较快的排序方法,现在用C#实现这种算法,代码如下: public static void quickSort(ref int[] a, int left, int right) { int i, …
A - MaratonIME stacks popcorn buckets ( Gym - 101375A )
A – MaratonIME stacks popcorn buckets Gym – 101375A Problem Description Statements On …
数的读法(蓝桥杯)
问题描述 Tom教授正在给研究生讲授一门关于基因的课程,有一件事情让他颇为头疼:一条染色体上有成千上万个碱基对,它们从0开始编号,到几百万,几千万,甚至上亿。 比如说,在对学生讲解第1234567009号位置上的…
独立任务最优调度
问题描述 独立任务最优调度 用两台处理机A和B处理n个作业。设第i个作业交给A处理需要时间ai,交给B处理需要时间bi。 由于各作业的特点和机器的性能关系,ai和bi之间没有明确的大小关系。既不有将一个作业分开由2台机器…
求正整数的所有分割并输出II
求正整数的所有分割并输出II 函数Part(N,M)能得到N不大于M的所有分割的集合。 #include<iostream> #include<vector> #include<algori…
最小生成树(MST)
Kraskal算法 1.初始所有节点都独立 2.按照边的权值递增遍历所有的边,若遍历到的边上的两个点,分属在不同的集合,则这条边就是最小生成树上的一条边,并将这两个顶点合并。 3.如果出现集合数量只为1个,说明最小生成树…
算法 排序算法之插入排序
package SortArith; /** * 插入排序 * @author lwk * 时间复杂度O(2) * 稳定排序 */ public class InsertSort { public static void…