xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 4KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-12
  • 語言: 其他
  • 標簽: 枚舉排序??

資源簡介

枚舉排序是一種最簡單的排序算法,該算法的具體思想是對每一個待排序的元素統計小于它的所有元素的個數,從而得到該元素最終處于序列鐘的位置。對該算法的并行化是很簡單的,假設對一個長為n的輸入序列使用n個處理器進行排序,只需使每個處理器負責完成對其中一個元素的定位,然后將所有的定位信息集中到主進程鐘,由主進程負責完成所有元素的最終排位。

資源截圖

代碼片段和文件信息

#include?
#include?
#include?

/*
??*?函數名:?main
??*?功能:???主函數,實現枚舉排序
??*?輸入:argc為命令行參數個數;
??*????????????argv為每個命令行參數組成的字符串數組
??*?輸出:返回1代表程序正常結束
*/
int?main(int?argcchar?*argv[])
{
int?DataSize?MyLength;??????????????/*DataSize:數組長度;MyLength:處理器分配到的數據長度*/
int?*data_in?*data_out;?????????????/*輸入和輸出數組指針*/
int?*rank;???????????????????????????/*秩數組*/
int?MyID?SumID;
int?i?j;?????????????????????????????????????

MPI_Status?status;???????????????????

MPI_Init(&argc&argv);????????????????/*MPI?初始化*/
MPI_Comm_rank(MPI_COMM_WORLD&MyID);??/*每個處理器確定各自ID*/
????????MPI_Comm_size(MPI_COMM_WORLD&SumID);?/*每個處理器確定總處理器個數*/

if(MyID==0)???????????????????????????/*主處理器*/
DataSize=GetDataSize();???????/*讀入待排序序列的長度*/

MPI_Bcast(&DataSize?1?MPI_INT?0?MPI_COMM_WORLD);
??????????????????????????????????????????????/*主處理器廣播待排序序列的長度*/
/*在各個處理器間劃分任務*/
MyLength=DataSize/SumID;??????????????
if(MyID==SumID-1)?????????????????????/*每個處理器確定各自要排序的序列長度*/
MyLength=DataSize-MyLength*(SumID-1);

data_in=(int?*)malloc(DataSize*sizeof(int));?/*分配待排序序列的空間*/
if(data_in==0)?ErrMsg(“Malloc?memory?error!“);


if(MyID==0){?????????????????????
data_out=(int?*)malloc(DataSize*sizeof(int));?/*主處理器分配排序后數組的空間*/
if(data_out==0)?ErrMsg(“Malloc?memory?error!“);

rank=(int?*)malloc(DataSize*sizeof(int));?????/*分配序號數組的空間*/
if(rank==0)?ErrMsg(“Malloc?memory?error!“);
}
else{
rank=(int?*)malloc(MyLength*sizeof(int));?????/*分配序號數組的空間*/
if(rank==0)?ErrMsg(“Malloc?memory?error!“);
}

if(MyID==0){
????????int?seed;
????????????????printf(“Please?Input?Seed:“);
????????scanf(“%d“&seed);???????????????????????/*獲得隨機數的種子*/
srand(seed);??????????????????????????
printf(“Random?Numbers:\n“);?
for(i=0;i data_in[i]=((int)rand())%10000;??/*生成隨機數,并輸出*/
printf(“%10d?“da

評論

共有 條評論

相關資源