所以,一般地,我们用算法的时间复杂度(有时还胡键碰要考虑空间复杂度)来衡量一个算法的好坏。计算时间复杂度是建立在执行算法中任何一个指令所消耗的时间相同的假设之上的,所以只是对算法性能的一个参考。
下面我给出常见的几种排序算法的时间复杂度:
排序法 时间复杂度
冒泡排序 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]] //将最大值输出到数码管
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)