Commit 3748ea58 authored by lq_debuger's avatar lq_debuger
Browse files

first commit

parent 4e0ea2a6
Loading
Loading
Loading
Loading

.vscode/launch.json

0 → 100644
+29 −0
Changes for .vscode/launch.json: 29 added lines, 0 removed lines.
Original line number Diff line number Diff line
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/test.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "E:\\mingw64\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Build"
        }
    ]
}
 No newline at end of file

.vscode/tasks.json

0 → 100644
+35 −0
Changes for .vscode/tasks.json: 35 added lines, 0 removed lines.
Original line number Diff line number Diff line
{   
    "version": "2.0.0",
    "options": {
        "cwd": "${workspaceFolder}/build"
    },
    "tasks": [
        {
            "type": "shell",
            "label": "cmake",
            "command": "cmake",
            "args": [
                ".."
            ],
        },
        {
            "label": "make",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "command": "mingw32-make.exe",
            "args": [

            ],
        },
        {
            "label": "Build",
            "dependsOn":[
                "cmake",
                "make"
            ]
        }
    ],

}
 No newline at end of file

CMakeLists.txt

0 → 100644
+5 −0
Changes for CMakeLists.txt: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
# cmake_minimum_required(VERSION 3.4.1)

project(demo)

add_executable(test sort_greedy_algorithm.cpp)
 No newline at end of file
+84 −0
Changes for sort_greedy_algorithm.cpp: 84 added lines, 0 removed lines.
Original line number Diff line number Diff line
/*
 * @Author: your name
 * @Date: 2021-09-17 22:33:33
 * @LastEditTime: 2021-09-18 12:15:40
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \advance_algorithm\sort_greedy_algorithm.cpp
 */
#include<bits/stdc++.h>
#include<time.h>
#include<vector>
#include<algorithm>
using namespace std;

int job_t[20];

//job的数量
int n = 6 ;

int num = 0;
int average = 0;

//机器的负载
int m1 = 0;
int m2 = 0;
// int m3 = 0;

//记录每个机器里的job

// 比较三个机器的load
int get_min_m(){
    // int temp1 = min(m1,min(m2,m3));
    int temp1 = min(m1,m2);
    if(temp1 == m1) return 1;
    if(temp1 == m2) return 2;
    // if(temp1 == m3) return 3;
}

bool cmp(int a , int b)
{
    return a > b;
}

int main()
{
    memset(job_t,0,sizeof(job_t));
    int temp;
    srand((unsigned)time(NULL));
    //生成随机的job值
    for (int i = 0; i < n; i++)
    {
        temp = rand()%7 + 1;
        num += temp;
        job_t[i] = temp;
        // printf("job_t[%d]=%d\n",i,job_t[i]);
    }

    //对job进行降序
    sort(job_t,job_t+n,cmp);

    for (int i = 0; i < n; i++)
    {
        printf("job_t[%d]=%d\n",i,job_t[i]);
    }
    
    //把前三个job分配给前三个机器
    m1 += job_t[0];
    m2 += job_t[1];
    // m3 += job_t[2];

    //按照greedy alogrithm进行分配
    for(int i = 2; i<n;i++)
    {
        if(get_min_m() == 1) m1 += job_t[i];
        else if(get_min_m() == 2) m2 += job_t[i];
        // else if(get_min_m() == 3) m3 += job_t[i];
    }

    // int min_t = max(m1,max(m2,m3));
    int min_t = max(m1,m2);
    cout << "按照greedy algorithm得到的makesapand T is :" << min_t << endl;
    cout << "总值是:" << num;
    return 0;
}
 No newline at end of file