EPI:Sorting

(1) Most efficient sorting algorithm for each situation

-- A large array whose entries are random numbers

Quicksort. considered one of the most efficient sorting, and is in-place

-- A small array of numbers

Insert sorting. stable and in-place

-- A large array of numbers that are already sorted

Heap sort. 

-- A large collection of integers that are drawn from a small range

Counting sort

-- A large collection of numbers most of which are duplicates

BST with linked list for elements which have the same key

-- Stabilily is required 

Merge sort, efficient and stable


(2) Variable length sort

思路:几乎所有的sorting都依赖于swapping操作,但是,如果交换对象的大小不一样,如果才能顺利进行交换呢?能不能将对象封装成大小一样的item呢?答案是Yes。Build an array P of pointers to the records. Then sort the pointers using the compare function on dereferenced pointers。 Finally, iterate through P writing the deference pointers


(3) Least distance sort.

思路:同上(Indirect sort), sort references to the objects first and then apply the permutation that was applied the references in the end. In this way, each item is moved exactly correct destination exactly once. 


(4) BST, Map, Counting sort

Map is implemented by the BST, and counting sort is entailed by the integer range. 


(5)  Task assignment

compute a 2-partition of A that has min max load


(6) Maximum number of events concurrently

思路:sort the endpoints of events, and count the maximum number of events taking place concurrently


(7) Union of intervals

思路:维护一个start和end


(8) Insert an interval

思路:类似于merge intervals


(9) Minimum points covering intervals

思路:find the task which ends earliest and remove those tasks which intersect with it. Repeat this process and continue.


(10) Stack sort (increasing)

思路:递归,拿出最顶段的item, insert it into the left sorted items in the stack.

if(S.empty()==false){
    T e=S.top();
    S.pop();
    sort(S);
    insert(S, e);
}
void insert(stack<int>& S, int e){
      if(S.empty() || S.top()>=e) 
              S.push(e);
      else{
              int f=S.top();
              S.pop();
              insert(S,e);
              S.push(f);
      }
}




【资源介绍】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,也可以作为小白实战演练和初期项目立项演示的重要参考借鉴资料。 3、本资源作为“学习资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研和多多调试实践。 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip 图像数据处理工具+数据(帮助用户快速划分数据集并增强图像数据集。通过自动化数据处理流程,简化了深度学习项目的数据准备工作).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值