C语言之random_n
来源:互联网 发布:山东省教师网络研修 编辑:程序博客网 时间:2024/05/29 11:09
之前写算法排序时有些数据总是手工输入,多少有些不方便,而且在小数据量输入时还可以接受,但是当数据量上升到K级后就显得庞杂。而且要保证之前输入的数据没有太多重复或者不重复这就更是考验我们的记忆力拉。所有我写拉一个产生N个无序整数的程序,此程序可以产生N个数,且在0-N 之间,并且各不相同。
具体代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAX_NUM 10 //所要产生的数据量
void random_n(int a[],int n); 声明random_n函数
int main()
{
int a[MAX_NUM],i=0,j=0;
while(j<MAX_NUM)
{
a[j]=-1; //初始化,很重要,之前在初始化上栽了大跟头
j++;
}
random_n(a,MAX_NUM);
while(i<MAX_NUM)
{
printf("%d\t",a[i]);
i++;
}
printf("\n");
return 0;
}
void random_n(int a[],int n)
{
int temp=0,j=0,count=0,i=0;
srand(time(0));
while(count < n)
{
printf("\nStart!\n");
temp=rand()%n;
printf("\ncount = %d ,temp =%d",count,temp);
for(j=0;j<count;j++)
{
if(a[j]==temp)
{
printf(" Find!\n");
i=1;
break;
}
else
{
i=0; //做标记
}
}
if(j==count && i==0) //比较完毕并且没有找到相同的
{
printf("\nNOT Find !\n");
a[count]=temp;
count++;
}
}
}
运行结果:
添加这个小函数后,我们在之后的算法数据输入时可以直接调用这个函数,事先声明一个含有MAX_NUM 个元素的数组,然后传参给random_n函数即可。算法的最坏运行情况为O (N^2),最好运行情况为O (N)。
这个算法效率不算高,之后我会给大家介绍一个效率更高的生成无序数的方法。
- C语言之random_n
- C语言之random_n-续
- C语言之四书五经
- C语言之四书五经
- C语言之四书五经
- C语言之数据类型
- C语言之指针
- C语言之解析
- C语言之诡异
- C语言之四书五经
- C语言之指针
- C语言之输入
- C语言之四书五经
- C语言之四书五经
- C语言之extern
- C语言之变量
- 基础之C语言
- C语言之断言
- js中动态创建关联数组的问题
- 《当程序员的那些快乐日子》(十六)我是怎么上班的(中)
- 载波侦听
- 笔试考察高数之平均要取多少个(0,1)中的随机数才能让和超过1。
- linux中MIB与MB单位的区别
- C语言之random_n
- 虚函数
- 嵌入式软件开发 必须掌握的知识点(三)(有错还望指点^_^)
- 关于SVN和Apache2的设置
- 从SEO的视角来看互联网
- sharepoint2010 构建web部件
- 利用Profile做支持匿名用户到登录用户转移购物车
- Dbutils详解
- 软件书籍推荐