排序是一个非常实用的功能,队列也是一样实用。
有时候项目中就是会用到它。举个例子,队列的运用,比如刷小礼物,接收方,会受到很多用户的礼物。为了公平起见,要一个个的显示出礼物效果。这个时候就需要队列了,先进先出。
把它们加入队列中,一个一个的运行。运行一个礼物效果,就移出一个队列数据。排序呢,也会经常用到,给你一堆数据,有时候需要按照日期排序,有时候要按照销量排序,等等。把无序的数据处理成有序的。
冒泡排序,就是一个很简单的排序实现方式,数据较少的情况下,排序效率会高一些。
这里,比如获取聊天好友列表,把最近聊天的人员优先排在前面。
这样处理,
// 冒泡排序聊天信息function sortChatList(arr) { var len = arr.length; for (var i = 0; i < len; i++) { for (var j = 0; j < len - 1 - i; j++) { if (arr[j].sentTime < arr[j+1].sentTime) { var temp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = temp; } } } return arr;}
经过两轮比较,消息发送时间戳大的就会排在前面了,也就是最新的聊天人员会排在前面。
for (var k = 0;k
继续尝试,改造成选择排序,思路就是,查询最小的数,或者最大的数,将其排在前面。
// 选择排序function sortChatList(arr) { var len = arr.length; var maxIndex, temp; for (var i = 0; i < len - 1; i++) { maxIndex = i; for (var j = i + 1; j < len; j++) { if (arr[j].sentTime > arr[maxIndex].sentTime ) { //寻找最大的数 maxIndex = j; //将最大数的索引保存 } } temp = arr[i]; arr[i] = arr[maxIndex]; arr[maxIndex] = temp; } return arr;}
运用才是最重要的,尼玛,其他的排序算法,真心看不懂。