可视化---排序

  这是一个连续更新的系列。。。。。。。。。。。

冒泡排序

冒泡排序:依次比较数组中相邻的两个元素,如果左边比右边大则进行调换,以此类推,这样第一次排序就把最大的元素放在最底下

伪代码:

1 do
2   swapped = false
3   for i = 1 to indexOfLastUnsortedElement-1
4     if leftElement > rightElement
5       swap(leftElement, rightElement)
6       swapped = true; swapCounter++
7 while swapped

详细过程:

选择排序

选择排序:每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

选择排序是不稳定的排序方法(比如序列[5, 5, 3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面)。

插入排序

插入排序:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止

 

归并排序

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。

归并过程为:比较a[i]和b[j]的大小,若a[i]≤b[j],则将第一个有序表中的元素a[i]复制到r[k]中,并令i和k分别加上1;否则将第二个有序表中的元素b[j]复制到r[k]中,并令j和k分别加上1,如此循环下去,直到其中一个有序表取完,然后再将另一个有序表中剩余的元素复制到r中从下标k到下标t的单元。归并排序的算法我们通常用递归实现,先把待排序区间[s,t]以中点二分,接着把左边子区间排序,再把右边子区间排序,最后把左区间和右区间用一次归并操作合并成有序的区间[s,t]。

 

快速排序

快速排序:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

随机快速排序

随机快速排序:是快速排序的一种优化,即使用随机的位置作为快速排序的主元(快速排序是使用第一个数作为主元)

 

计数排序 

计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。

当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(n*log(n))的时候其效率反而不如基于比较的排序(基于比较的排序的时间复杂度在理论上的下限是O(n*log(n)), 如归并排序,堆排序)

 

基数排序

 

 

排序算法消耗时间

消耗时间参考该文章https://www.cnblogs.com/woider/p/6835466.html,在此表示感谢

选择

  有序的数据结构中插入数据在排序,一般使用插入排序;

  取序列中最大最小的几个数时,一般使用选择排序;

  要求时间最短时,一般使用快速排序;

  内存少的时候,可以进行并行计算的时候,一般使用归并排序;

  使用大量数,并且数据的位数很大时,一般使用基数排序;

  冒泡一般都不用;

转载于:https://www.cnblogs.com/kefeiGame/p/8393544.html

在进行bray-curtis可视化时,可以使用clustree工具进行聚类分析结果的可视化。clustree是一个用于展示聚类分析结果的工具,可以帮助用户更细致地评估聚类结果。通过安装clustree包并使用相应的函数,可以生成bray-curtis可视化图。另外,还可以使用热图可视化来探究bray-curtis相似性,该图可以在不同的物种分类级别上展示生物样本矩阵,并支持多种选项,如颜色标记样本、排序和分离生物体等。此外,还可以使用箱线图可视化来比较不同分类属性之间的丰度差异。总之,通过clustree和其他相关函数,可以进行bray-curtis的可视化分析。 #### 引用[.reference_title] - *1* [R语言中聚类过程 可视化](https://blog.csdn.net/Mrrunsen/article/details/127149159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Microbiome:animalcules-交互式微生物组分析和可视化的R包](https://blog.csdn.net/woodcorpse/article/details/116280047)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值