排序的时间复杂度为O(n),空间复杂度为O(1)
来源:互联网 发布:mac qq邮箱下载附件 编辑:程序博客网 时间:2024/04/28 03:51
利用整数的范围一般是0~65535.我们就声明一个65535大小的数组exist[65535]然后,让待排序的数组a[]={1,2,3,4,5,1,6,3};
让数组a[]的每个值作为数组exist[]的下标,例如exist[a[0]] = exist[1] ++。由于出现了两个1,所以exist[1] = 2;
以此类推得到了exist[2] =1,exist[3] =2 ,exist[4]=1,exist[5] =1,exist[6] =1.
最后以exist[]下标为遍历,输出所有下标,并且根据值,就输出几次。
时间复杂度为O(n)
空间复杂度wie O(1)
#include <iostream>using namespace std;void paixu(int a[] ,int len){ #define MAXLEN 65535int exist[MAXLEN]={0};int i ,j;for(i=0 ;i<len ;i++){exist[a[i]]++;}for(j = 0 ;j<MAXLEN ;j++){while(exist[j]!=0){cout<<j<<endl;;exist[j]--;}} }void main(){int a[]={1,5,7,8,12,0,34,56,23};paixu(a,9);}
- 排序的时间复杂度为O(n),空间复杂度为O(1)
- 时间复杂度为O(N),空间复杂度为O(1)的排序算法
- 时间复杂度为O(n),空间复杂度为O(1)
- 不用额外空间的整数交换以及时间复杂度为O(n)空间复杂度为O(1)的排序算法
- 时间复杂度O(n),空间复杂度O(1)的排序
- 时间复杂度为O(n)的排序
- 时间复杂度为O(n)的排序
- 一个时间复杂度为O(n),空间复杂度为O(1)的排序算法
- 1~n无序数组时间复杂度为O(n)排序
- 1~n无序数组时间复杂度为O(n)排序
- (C#)实现时间复杂度为O(n)空间复杂度为O(1)的数组中奇偶数分离
- 华为笔试:写排序算法,时间复杂度为O(n),空间复杂度O(1),一次只能交换两个数
- 将数组排序,数组中所有的负整数出现在正整数前面(时间复杂度为 O(n), 空间复杂度为 O(1)).
- 有1,2,....一直到n的无序数组,求排序算法,要求时间复杂度为O(n),空间复杂度O(1)
- 有1,2,…,n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂度O(1),一次只能交换两个数
- 有1,2,....一直到n的无序数组,求排序算法,要求时间复杂度为O(n),空间复杂度O(1)
- 时间复杂度为O(n+t)的排序
- 时间复杂度为O(n)的排序算法
- vs2010连接sql 2005 未能加载文件或程序集
- JavaScript push() 方法!
- C# Lock 解读
- Find Terrorists(素数筛选+素因子分解)
- 输入错误: 没有文件扩展“.js”的脚本引擎
- 排序的时间复杂度为O(n),空间复杂度为O(1)
- 内存
- Android模拟器怎么配置网络连通
- js获得鼠标坐标
- windows debug tools
- 约瑟夫循环问题的解答
- cdb取得死循环进程的调用栈
- Qt signals and slots in different classes
- Servlet自动启动加快速度语句