前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C算法分析与设计_用户指定数组,值随机产生,两种算法求最小差的绝对值【并使用计时法和计数法】

C算法分析与设计_用户指定数组,值随机产生,两种算法求最小差的绝对值【并使用计时法和计数法】

作者头像
瑞新
发布2020-07-08 11:26:07
6840
发布2020-07-08 11:26:07
举报

法1 暴力:

代码语言:javascript
复制

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    printf("请输入数组内要存放的数字个数:\n");
    int number;
    scanf("%d",&number);
    int array[number-1];
    int begintime,endtime;
    int count_turn = 0;
    srand(time(NULL));
    printf("以下随机数自动产生:\n");
    for(int i = 0; i < number; i++){
        array[i] = 0 + rand()%number;
        printf("%d\t",array[i]);
    }

    begintime=clock();
    //冒泡排序
    for(int i = 0; i < number-1; i++){
        for(int j = i+1; j < number; j++){
            if(array[i]>array[j]){
                int temp = 0;
                temp = array[i];
                array[i] = array[j];
                array[j] = temp;
                ++count_turn;
            }
        }
    }
        int temp = 0 ,min = 100;
    for(int i = 0; i < number;i ++){
        temp = array[i+1]-array[i];
            ++count_turn;
        if(temp<min){
            min = temp;
        }
    }
    endtime = clock();
    printf("\n最小差值为:%d",min);
    printf("\n\nRunning Time:%dms\n", endtime-begintime);
    printf("\ncount_turn:%d",count_turn);
    return 0;
}

 
 

法2:排序 代码:

代码语言:javascript
复制

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    //输入
    printf("数组元素个数:\n");
    int sum = 0;
    scanf("%d",&sum);
    int array[sum-1];
    int begintime,endtime;
    int count_turn = 0;
    srand(time(NULL));

    printf("以下随机数自动产生:\n");
    for(int i = 0; i < sum; i++){
        array[i] = 0 + rand()%sum;
        printf("%d\t",array[i]);
    }


    begintime=clock();
    //暴力:两两之差的绝对值
    int min = 100, temp = 0;
    for(int i = 0; i < sum-1; i++){
        for(int j = i+1; j < sum; j++){
            ++count_turn;
            temp = array[i] - array[j];

            if(temp < 0 ){
                temp = -temp;
            }
            if(temp < min){
                min = temp;
            }
        }
    }
    endtime = clock();
    printf("\n%d", min);
    printf("\n\nRunning Time:%dms\n", endtime-begintime);
    printf("\ncount_turn:%d",count_turn);
    return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档