胺是氨的氢原子被烃基代替后的有机化合物。氨分子中的一个、两个氢原子被烃基取代而生成的化合物,分别称为伯胺、仲胺,它们的通式为:RNH2——伯胺、R2NH——仲胺。
根据伯胺中氨基的数目,又可以分为一元胺、二元胺和多元胺。根据氮原子所连接的烃基的不同,可分为脂肪伯胺和芳香伯胺。伯胺呈弱碱性。伯胺是一类性质活泼的化合物,由于氮原子上有未共电子对,可作为亲核试剂参与许多反应,例如烷基化、酰基化、磺酰基化、与羰基化合物的反应以及氧化反应等,同时还能与亚硝酸反应生成各种不同化合物。
仲胺又称脂肪仲胺。低级仲胺为气体或液体,高级仲胺为固体,弱碱性。遇酸形成按盆。由伯胺在镍钻或铜锅催化剂作用下经脱氨和加氢而得。用于除草剂,二氧杂环己烷的稳定剂,纤维的防水、抗静电和柔软等方面。常以盐酸盐形式出售。
拓展好文:c++桶排序(刚学也能看懂)
目录
哈喽????
穿梭门
效果????
桶排序是什么????
????再简单点说
????再再简单点说
思路
确定“分桶”个数????
复杂度分析????
c++代码实现
python版代码(嘿嘿,没想到吧)
最后
这次来发一下桶排序,它的时间复杂度低,代码也不难
二分算法
堆排序
就是排序
所以说,还是比较简单滴
桶排序是计数排序的升级版,也是分治算法。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。桶排序(Bucketsort)的工作的原理:假设输入数据服从均匀分布,将数据分到有限数量的桶里,每个桶再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排)。简言之,将值为i的元素放入i号桶,最后依次把桶里的元素倒出来。
怎么样,是不是很“简单”?
还有这张一看就头疼的图
????????????????????????????????????????????????????????????????????????????
桶排序的基本思想是假设数据在[min,max]之间均匀分布,其中min、max分别指数据中的最小值和最大值。那么将区间[min,max]等分成n份,这n个区间便称为n个桶。将数据加入对应的桶中,然后每个桶内单独排序。由于桶之间有大小关系,因此可以从大到小(或从小到大)将桶中元素放入到数组中。
简单说,你有一个数组1,3,7,77,100,234
比如,
你把一位数、两位数和三位数分到3个桶里,
各自排完序再合到一起
排序前:1,3,7,77,100,234
一位数:1、7、3
两位数:77
三位数:100、234
排序后:
一位数:1、3、7
两位数:77
三位数:100、234
合起来:1、3、7、77、100、234
1.设置一个定量的数组当作空桶子。
2.寻访序列,并且把项目一个一个放到对应的桶子去。
3.对每个非空的桶子进行排序。
4.从不是空的桶子里把项目再放回原来的序列中。
假如要对数组arr={?2,0,1,6,8,10,5,99,87,333,2,0,1?}排序,假设需要桶的个数为bucketNum=std::ceil(size/3),向上取整,反之桶个数不够映射时越界。
桶排序实际上只需要遍历一遍所有的待排序元素,然后依次放入指定的位置,如果加上输出排序的时间,那么需要遍历所有的桶,时间复杂度为O(n+m),其中n为待排序元素的个数,m为桶的个数,这时相当快的排序算法,但是,对于空间的小号来说太大了。当n越大,空间浪费就越大,所以,如果数据跨度过大,桶排序并不适用跨度范围大的排序。
直接放代码,如果你报错了,就把前面的万能头文件改了
c++版(devc++无报错无警告)
今天想给大家推荐一本书
互粉必回!?白白????