面试题:数组随机排列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试题:数组随机排列相关的知识,希望对你有一定的参考价值。

今天去面试做了一套题,有个题目是就是数组随机排列。 我脑子里并没有概念,只是因为前几天看javascript高级程序设计3的第五章讲数组的时候讲解的数组排序方法reverse() 和sort()。reverse 是颠倒数组中元素的位置并返回颠倒后的数组,按照字符串的Unicode码位点(code point)排序;而js排序是就是用 sort 方法来排序也是按照的是按照字符串的Unicode码位点(code point)排序;sort方法的参数只有一个就是compareFunction,翻译过来就是比较函数。技术分享

上图是sort比较规则。

了解完整个sort,回归题目。 数组随机排序,看到随机,我们第一反应就是用Math.random函数,排序用sort,但是该怎么排序?在面试中我一直在思考,然后面试完了我就百度了一下找到了答案。

下面是完整代码

var arr = ["1","2",1,2,6,"sdas","sqqwcm","qywcqkn","david"];
function compare (){
    return Math.random() > 0.5 ? 1 : -1;
}
var newArr = arr.sort(compare);
console.info(newArr);

 

以上是关于面试题:数组随机排列的主要内容,如果未能解决你的问题,请参考以下文章

冒泡排序(面试题)

Python面试必考重点之列表,元组和字典第四关——编写一个函数(不要使用python模块的函数),打乱列表元素的顺序/如何对列表元素进行随机排列

最强解析面试题:字符串全排列「建议收藏!」

最强解析面试题:字符串全排列「建议收藏!」

Java开发面试题及答案,java随机打乱数组顺序

面试题向一个长度为100的int数组,插入1-100的随机数,不能重复