C语言 - 冒泡排序法
/*本程序用于比较两种不同的冒泡排序法对同一个样本排序时的运算次数。程序随机生成了20组*/
/*样本,对于每一组样本,程序将会输出排序前的样本、排序后的样本、当前样本的运算次数统计*/
/*数据。程序会实时地把输出记录在本地文件D:\BubbleSort.txt中。同时,程序还为20组样本的*/
/*运算次数统计数据单独生成了一个记录文件副本D:\BubbleSortStatistic.txt */
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
int sornum1_inta[10000];//sort number,存储使用第一种冒泡排序法的样本(样本1)
int sornum2_inta[10000];
//sort number,sornum1的副本,使用第二种冒泡排序法排序(样本2)
int smpnum_int = 20;//sample number,样本数
long long int asmnum1_ll , asmnum2_ll;//assignment number,赋值的次数
long long int comnum1_ll , comnum2_ll;//compare number,比较的次数
long long int allnum1_ll , allnum2_ll;//all number,总运算次数
FILE *res_fp;//result FILE pointer,记录输出结果的文件
FILE *stc_fp;//statistic FILE pointer,记录统计数据的文件
void prt1(void);
void sor1(void);
void prtsor1(void);
void prt2(void);
void sor2(void);
void prtsor2(void);
void prtstc(void);
void prtstc_f(void);
void prtstc_sf(void);
int main(int argc, char const *argv[])
{
SetConsoleCP(65001);
SetConsoleOutputCP(65001);
srand((unsigned int)(time(NULL)));
res_fp = fopen("D:\\BubbleSort.txt","w+");
stc_fp = fopen("D:\\BubbleSortStatistic.txt","w+");
while(smpnum_int--)
{
for (int maknum_i = 0; maknum_i < 10000; ++maknum_i)
//make number,用于生成随机数组的循环
{
sornum1_inta[maknum_i] = sornum2_inta[maknum_i] = rand();
}
printf(".\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n");
fprintf(res_fp ,
".\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n");
prt1();
printf(".\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n");
fprintf(res_fp ,
".\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n");
sor1();
prtsor1();
printf(".\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n");
fprintf(res_fp ,
".\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.\n.