Array.sort是不稳定的排序算法吗?

var str = "A F a m o u s S a y i n g M u c h A d o A b o u t N o t h i n g";
var arr1 = str.split(" ");

arr1.sort(function(v1,v2){
    var code1 = v1.toUpperCase().charCodeAt(0);
    var code2 = v2.toUpperCase().charCodeAt(0);
    return code1-code2;
});

str   //A F a m o u s S a y i n g M u c h A d o A b o u t N o t h i n g
arr1 //A a A A a b c d F g g h h i i M m n n N o o o o s S t t u u u y

根据我的构想,arr1应该是A a a A A...

阅读 6.5k
2 个回答

V8引擎下的array.sort少于10个用插排,大于10个用快排。
此外,对于你的排序函数来说,A==a,这个导致了你最后的排序结果并不会稳定。

推荐问题