排序算法时间

排序算法时间,第1张

计算一个算法所消耗的时间是没有意义的,因为一个算法所用的时间不仅仅取决于算法本身,还裤谈与实现算法所使用的编程语言,输入的数据,执行算法的的硬件环境等等密切相关。

所以,一般地,我们用算法的时间复杂度(有时还胡键碰要考虑空间复杂度)来衡量一个算法的好坏。计算时间复杂度是建立在执行算法中任何一个指令所消耗的时间相同的假设之上的,所以只是对算法性能的一个参考。

下面我给出常见的几种排序算法的时间复杂度:

排序法 时间复杂度

冒泡排序 O(n^2)

快速排序 O(n*log2n)

选择排序 O(n^2)

二叉树排序 O(n*log2n)

插入排序 O(n^2)

堆排亮茄序 O(n*log2n)

你那个数据是几位数的啊?一位?两位?三位?还是N位?

/*算了,就给你写个一位数的吧,多位数的自己去想办法*/

sfr led=0x80//定义P0口森举余为数码管数据

unsigned char tab[8]={1,2,3,4,5,6,7,8}//答卜存数据

unsigned char tmp[8]={0,0,0,0,0,0,0,0}//此滚作比较用

unsigned char ledcode[16]="0123456789ABCDEF"//数组存入0123456789ABCDEF的段码数据,这个数组我偷懒了,你自己要改哈O(∩_∩)O!

void main(){

unsigned char i,j,temp

for(j=0j<8j++){ //循环比较8次(数组长度次)

temp=0

for(i=0i<8i++){ //循环判断8次取最大值(数组长度次)

if(temp<tab[i]){//比较,取大的一个数据

temp=tab[i]

}

if(i==7){

tmp[7-j]=temp//将最大值存入比较数组

}

}

for(i=0i<8i++){ //将最大值从数据数组中删除

if(temp==tab[i]){

tab[i]=0

}

}

}

led=ledcode[tmp[7]] //将最大值输出到数码管

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12472634.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存