
能不能给个简单的80句左右的c语言程序
展开全部
#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include<time.h>
#include<cmath>
#include "HeapSort.h"
using namespace std;
template <typename E>
class Randomize
{
public:
Randomize(vector<E> data)
{
datalist = data;
srand(time(NULL));
for (int index = 0; index < datalist.size(); index++)
{
int val = (int)(rand() * 1.0 / RAND_MAX * (pow(datalist.size(), 3) - 1) + 1);
Event newEvent;
newEvent.priority = val;
newEvent.data = datalist.at(index);
eventlist.push_back(newEvent);
}//end loop
int * priorityList = new int[datalist.size()];
printf("Priority: ");
for (int index = 0; index < datalist.size(); index++)
{
priorityList[index] = (eventlist.at(index).priority);
printf("%d ", priorityList[index]);
}
printf("\nData: ");
for (int index = 0; index < eventlist.size(); index++)
{
printf("%f ", eventlist.at(index).data);
}
printf("\n\n");
heapSort(priorityList, datalist.size());
for (int index = 0; index < eventlist.size(); index++)
{
if (eventlist.at(index).priority != priorityList[index])
{
Event temp = eventlist.at(index);
for (int j = index; j < eventlist.size(); j++)
{
if (eventlist.at(j).priority == priorityList[index])
{
eventlist.at(index) = eventlist.at(j);
eventlist.at(j) = temp;
break;
}
}//end loop
}//end if
}//end loop
printf("Priority: ");
for (int index = 0; index < datalist.size(); index++)
printf("%d ", eventlist.at(index).priority);
printf("\nData: ");
for (int index = 0; index < eventlist.size(); index++)
{
datalist.at(index) = eventlist.at(index).data;
printf("%f ", eventlist.at(index).data);
}
printf("\n");
}//end constructor
vector<E> getRandomizedData()
{
return datalist;
}
private:
struct Event
{
int priority;
E data;
}newEvent;
vector<Event> eventlist;
vector<double> datalist;
};//end class.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询