ipv6地址怎么排序
不知道你所指的排序是哪种规则排序。排序算法分类 比较排序,时间复杂度为O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等 非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序等。
选择排序每次比较的是数组中特定索引的值与全数组中每个值的大小比较,每次都选出一个最小(最大)值,如果当前索引的值大于之后索引的值,则两者进行交换。
冒泡排序每次从数组的最开始索引处与后一个值进行比较,如果当前值比较大,则交换位置。这样一次循环下来,最大的值就会排入到最后的位置。
插入排序类似于扑克牌的插入方法,选取待排列数组中的任意一个数字作为已排序的基准,再依次从待排序数组中取出数字,根据依次比较,将这个数字插入到已排序的数组中。
二分插入排序是直接插入排序的一个变种,利用二分查找法找出下一个插入数字对应的索引,然后进行插入。当n较大时,二分插入排序的比较次数比直接插入排序的最差情况好得多,但比直接插入排序的最好情况要差,所当以元素初始序列已经接近升序时,直接插入排序比二分插入排序比较次数少。二分插入排序元素移动次数与直接插入排序相同,依赖于元素初始序列。
希尔排序是一种更高效的插入排序,通过设计步长(gap)将数组分组,然后每组中单独采用排序算法将每组排序,然后在缩小步长,进行重复的分组排序工作,直到gap变为1的时候,整个数组分为一组,算法结束。
例如:数组 [1, 4, 5, 2, 3, 9, 0, 7, 6],如果每次以数组长度的一半来作为步长,可以分解为以下步骤
1. gap: Math.floor(9 / 2) = 4;
免责声明:本站发布的教育资讯(图片、视频和文字)以本站原创、转载和分享为主,文章观点不代表本网站立场。
如果本文侵犯了您的权益,请联系底部站长邮箱进行举报反馈,一经查实,我们将在第一时间处理,感谢您对本站的关注!
新励学网教育平台
海量全面 · 详细解读 · 快捷可靠
累积科普文章数:18,862,126篇