全文预览

兰州大学-数据结构-命题作业-二叉树

上传者:hnxzy51 |  格式:doc  |  页数:6 |  大小:59KB

文档介绍
始{if(a[i]>a[i-l]){inttemp=a[i];for(j=i-l;j>=0&&a[j]<temp;j-){a[j+l]=a[j];}aO+l]=temp;//此处就是a[j+l]=temp;}}}冒泡排序:voidBubbleSort(inta[],intk)intijtemp;for(j=0;j<n-l;j++)for(i=0;i<n-l-j;i++){if(a[i]<a[i+l]){temp=a[i];a[i]=a[i+l];a[i+l]=temp;}}}}voidmain(){inta[]={4,27,54,3,6};intk=sizeof(a)/sizeof(a[0]);//数组大小lnsSort(a,k);〃直接插入排序for(inti=0;i<k;i++){printf("%da[i]);}printf(”\n“);intb[]={4,2,7,5,1,3,6};intn=sizeof(a)/sizeof(a[0]);//数组大小BubbleSort(b,n);//冒泡排序for(inti=0;ivn;i++)printf("%d",b[i]);}printf(”\n”);}第三题直接插入排序:思想:最基本的插入排序,将第n个插入到前个中的适当位置时间复杂度:T(n)=O(n2)稳定性:稳定排序。循环条件(j>=0&&a[j]<temp)保证的冒泡排序:思想:反复扫描待排序序列,在扫描的过程中顺次比较相邻的两个元素的大小,若逆序就交换位置。第一趟,从第一个数据开始,比较相邻的两个数据,(以升序为例)如果大就交换,得到一个最大数据在末尾;然后进行第二趟,只扫描前个元素,得到次大的放在倒数第二位。以此类推,最后得到升序序列。如果在扫描过程中,发现没有交换,说明已经排好序列,直接终止扫描。所以最多进行趟扫描时间复杂度:T(n)=O(n2)稳定性:稳定排序

收藏

分享

举报
下载此文档