数据结构算法
文章平均质量分 80
有邪
每天一遍,我好菜呀!
展开
-
任务调度问题(贪心算法) Java实现
这个问题是《算法导论》上的一个经典的贪心算法问题——单处理器上具有期限和惩罚的单位时间任务调度问题,目标是使惩罚最小。问题描述:具有截止时间和误时惩罚的单位时间任务时间表问题可描述如下:(1) n 个单位时间任务的集合S={1,2,…,n}(n≤500);(2) 任务i的截止时间deadline[i],1≤d[i]≤n,即要求任务i在时间d[i]之前结束;(3) 任务i 的误时惩罚1≤weught[i]<1000,即任务i 未在时间d[i]之前结束将招致w[i]的惩罚;若按时完成则无惩罚原创 2021-12-02 14:14:18 · 3198 阅读 · 1 评论 -
排序算法整理
一、插入排序1.1直接插入排序void InsertSort(int array[], int n) { int i, j; int current; for(i = 1; i < n; ++i)//初始默认array[0]为已排好序的序列 current = array[i];//指向当前正在排序的元素 for(j = i-1; current < array[j] && j >= 0; j--) //在array[0...i-1]中逆序比较原创 2020-07-17 11:47:41 · 152 阅读 · 0 评论 -
计算机考研408的算法题详解
2018年真题题目:给定一个含n(n>=1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。例如,数组{-5,3,2,3}中未出现的最小正整数是1;数组{1,2,3}中未出现的最小正整数是4。思路分析:基于map的思想,创建一个和数组等长的map<int,int>,遍历数组,对map[i]++;再遍历一次map,对第一次出现的map[i]!=0时的键i输出,即为最小正整数。但408不让用STL,因此用数组来代替map。1、创建动态数组:在堆中原创 2020-05-22 15:14:41 · 8855 阅读 · 2 评论