我发现了 石油 新的排序算法!!!
算法:
定义布尔数组a[NUM] (我也不知道NUM的值) 输入 n,循环输入n次整数x,每次输入把a[x]的值改为1,输出每个 a[i]=1 的 i 是有序序列
算法时间复杂度 O(n)
空间占用(字节) 4*NUM+8
∵ sizeof(int)=4
∴ sizeof(a[NUM])=4*NUM
∵ type(n)=int,type(x)=int
∴ sizeof(n)=sizeof(x)=4
∴ sizeof(n)+sizeof(x)=4+4=8
∴ sizeof(全局)=4*NUM+8
代码
#include<iostream>
using namespace std;
int main(){
bool a[NUM]={0};int n=0,l,max;
cin>>n;
for(int i=0;i<n;cin>>l,i++){
a[l]=1;
}
for(int i=0;i<NUM;i++){
if(a[i]==1) cout<<i<<" ";
}
}
优点:
代码短,时间复杂度相对低,对NUM值较小的时候较为便捷
缺点:
空间占用大
优化:
先输入数组,找到最大值MAX,定义大小为MAX的BOOL数组,会减少一些不必浪费的空间,不过慎重优化,以免出现种种错误。
我发现的新排序算法,请留赞与关注!!!