排序的笔试题

1.一个从大到小的数组,按从小到大的顺序排序,哪种排序方法最快?(最坏情况)

(1)冒泡排序:1+2+...n-1=O(n^2);

(2)快速排序:每次partion都需要比较k-1次,才能将“第一个”数字移动到“末端”。需要进行n-1次partion才能完成排序。所以最坏情况下比较次数仍然是1+2+..+n-1=O(n^2)。

(3)插入排序:

(4)堆排序:

补充:平均情况下,这几种排序算法的比较:

(1)快速排序:平均时间复杂度为O(nlogn);最坏时间复杂度O(N^2);快速排序需要一个栈作辅助空间,用来实现递归处理左、右子文件,在最坏情况下,递归深度为n,所需栈的空间大小为O(n)数量级。

(2)冒泡排序:

时间: 2024-11-09 12:40:55

排序的笔试题的相关文章

笔试题:排序后取最小差值数

笔试题:要从5个人中选取2个人作为礼仪,其中每个人的身高范围为160-190,要求2个人的身高差值最小(如果差值相同的话,选取其中最高的两人),以升序输出两个人的身高. Smple input:161 189 167 172 188 Sample outPut: 188 189 public class demo06{ public static void main(String[] args){ int[] arr={161,189,167,172,188};//原始值 //将原始值升序排序

2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小。

2014年去哪儿网笔试题--给定一个整型数组,对这个整型素组排序,使得按序拼接数组各元素得到的值最小. 我的大致思路是把这个整型数组转换成String数组,然后通过String类的compareTo方法对这个数组进行第一次排序,排序得到的结果恰好是按字典序排序,而字典序又恰好是数字从0-9的顺序,恰好符合这个要求.最后进行检验下,有的可能需要调换下顺序使得数最小. package com.cn.qunar.test; /** * @author 刘利娟 [email protected] * @

腾讯web前端开发工程师笔试题及答案

1. 如何实现事件委托? 首先要知道什么是事件委托. 考虑一个列表,在li的数量非常少的时候,为每一个li添加事件侦听当然不会存在太多性能方面的问题,但是当列表非常的长,长到上百上千甚至上万的时候(当然只是一个解释,实际工作中很少遇到这么多li的情况),为每个li添加事件侦听就会对页面性能产生很大的影响. 就像下面这段代码: <!DOCTYPE HTML><html><head><meta charset="utf-8" /><ti

java各公司笔试题集1

IBM笔试题 注:IBM笔试题一小时之内完成,题目全部用英文描述,这里用中文表述 一.名词解释 1.Eclipse 2.J2EE 3.EJB 4.Ajax 5.Web service 二.找出以下代码问题 public class test{ public void print(String str){ char[] s=str: } } public class a{ public static void main(String [] args){ puts() } } 三.写出以下输出 pu

&lt;转&gt;网易2016实习生前端笔试题部分总结

网易2016实习生前端笔试题部分总结 原文地址:http://www.cnblogs.com/venoral/p/5325202.html 这只是部分题,答案为个人观点如有错误欢迎指出,感觉考点都挺基础,但是很注重考细节方面,通过整理也知道自己在CSS3和HTML5,网络知识等方面的不足还是得多学多练多思考.攒rp,希望自己在明天360笔试中能轻松答过~ css 1.多选 //HTML <p>很长的一段文字,很长的一段文字,很长的一段文字,特别长的文字</p> //CSS p{ w

经典的阿里前端笔试题

1 请说明下面各种情况的执行结果,并注明产生对应结果的理由. function doSomething() { alert(this); } ① element.onclick = doSomething,点击element元素后. ② element.onclick = function() {doSomething()}, 点击element元素后. ③ 直接执行doSomething(). 参考答案: 1.element:调用执行时直接指向事件元素. 2.window:函数调用中的 thi

快速排序C实现(阿里巴巴 2012年笔试题)

<快速排序C实现> 这篇文章最早是我原创,2012年发表在当时我的百度空间的一篇文章,没想到机缘巧合,此题竟然无意中被阿里巴巴选录,被改成填空题,成为当年阿里巴巴全国校招的笔试题,机缘巧合,可叹可叹!现在博客搬家,我重新把这篇文章保持原貌.原封不动从百度空间搬到CSDN新的博客. #include <stdio.h> /*输出*/ void show(int [],int); void quickSort(int array[],int left,int right) { if(l

广联达北邮笔试题

广联达北邮宣讲笔试题 编程题 1.链表相比于数组不是其优点的是:存储空间小. 2.一群不同年龄的人,找出最小的年龄的差值(绝对值),时间复杂度小于O(n^2) 我的思路是:用快排将年龄排序(从小到大),然后用次小年龄减去最小年龄就是最小年龄差. 3.删除单向链表的给定的结点,时间复杂度为O(1) 链表结点定义: struct linknode{ int key; linknode * next } 剑指offer有此题. 思路:用给定结点的下一节点的值覆盖给定结点的值,然后将下一节点删除. 假设

史上最难PHPer笔试题,40分就能月薪过万!附答案

请批判性的学习,欢迎大牛指正错误 1.有关PHP字符串的说法,不对的是:A.如果一个脚本的编码是 ISO-8859-1,则其中的字符串也会被编码为 ISO-8859-1.B.PHP的字符串在内部是字节组成的数组,用花括号访问或修改字符串对多字节字符集很不安全.C.substr().strpos().strlen().htmlentities() 处理字符串时依据的编码方式是相同的.D.一个布尔值 Boolean 的 true 被转换成 string 的 " 1 ",false 被转换成