c++学习连载—随机排序
来源:互联网 发布:网络推广优化三尾狐 编辑:程序博客网 时间:2024/06/05 10:21
首先介绍下产生随机数的程序:
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#define MAX 10
int main()
{
int number[MAX]={0};
int i;
srand(unsigned(time(NULL)));
for(i=0;i<MAX;i++)
{
number[i]=rand()%100;
printf("%d ",number[i]);
}
printf("\n");
return 0;
}
srand(unsigned(time(NULL)));用来产生随机数需要的种子
如果没有这句代码,那么程序每次运行获得的随机数序列将相同
number[i]=rand()%100;产生0~99之间的随机数
下面是我写的产生(a,b)之间随机整数的程序,感兴趣的可以用算法
知识证明程序的正确性
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
int randomgenator(int num_min,int num_max)
{
srand(unsigned(time(NULL)));
return rand()%(num_max-num_min)+num_min;
}
下面是获得数组大小的程序:
#include <iostream>
using namespace std;
template <class T>
int getArrayLen(T& array)
{//使用模板定义一个函数getArrayLen,该函数将返回数组array的长度
return (sizeof(array) / sizeof(array[0]));
}
下面是对于给定的序列给出一个随机排序的整个程序
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include <iostream>
using namespace std;
int randomgenator(int num_min,int num_max)
{
//srand(unsigned(time(NULL)));
return rand()%(num_max-num_min)+num_min;
}
template <class T>
int getArrayLen(T& array)
{//使用模板定义一个函数getArrayLen,该函数将返回数组array的长度
return (sizeof(array) / sizeof(array[0]));
}
template <class T>
void randomize_in_place(T& arry)
{
int len=getArrayLen(arry);
int tem;
int tem_index;
srand(unsigned(time(NULL)));
for(int i=0;i<len;i++)
{
tem_index=randomgenator(i,len);
tem=arry[i];
arry[i]=arry[tem_index];
arry[tem_index]=tem;
}
}
int main()
{
int A[10]={1,2,3,4,5,6,7,8,9,10};
int i=0;
for(;i<10;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
randomize_in_place(A);
i=0;
for(;i<10;i++)
{
cout<<A[i]<<" ";
}
cout<<endl;
return 0;
}
一下是程序运行结果:
- c++学习连载—随机排序
- C++学习连载—合并排序及其遇到的问题
- c++学习连载-堆排序完整程序
- 《 Linux C编程一站式学习》连载一
- 《 Linux C编程一站式学习》连载二
- 《 Linux C编程一站式学习》连载三
- 《 Linux C编程一站式学习》连载四
- 《 Linux C编程一站式学习》连载五
- 《 Linux C编程一站式学习》连载六
- 《 Linux C编程一站式学习》连载七
- 《 Linux C编程一站式学习》连载八
- 《 Linux C编程一站式学习》连载九
- 《 Linux C编程一站式学习》连载十
- 《 Linux C编程一站式学习》连载十一
- 《 Linux C编程一站式学习》连载十二
- 《 Linux C编程一站式学习》连载十三
- c语言对一组数据随机排序
- 非随机快速排序C语言实现
- ZooKeeper安装过程
- 软件开发模式之敏捷开发介绍
- JavaJsonUtil公用类
- 数组大折腾
- storm 原理简介及单机版安装指南
- c++学习连载—随机排序
- SSH开发环境的配置:web.xml、Spring集成hibernate和Spring集成Struts2
- F(x)
- 十四周——排序(冒泡)
- 1 初始化Direct3D
- php连接hive各种问题记录
- object-c把数据写入到文件中
- 自己写操作系统1——引导扇区
- 遍历链表