一、冒泡排序
已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先比较a[1]与 a[2]的值,若a[1]大于a[2]则交换两者的值,否则不变。再比较a[2]与a[3]的值,若a[2]大于a[3]则交换两者的值,否则不变。再比 较a[3]与a[4],以此类推,最后比较a[n-1]与a[n]的值。这样处理一轮后,a[n]的值一定是这组数据中最大的。再对a[1]~a[n- 1]以相同方法处理一轮,则a[n-1]的值一定是a[1]~a[n-1]中最大的。再对a[1]~a[n-2]以相同方法处理一轮,以此类推。共处理 n-1轮后a[1]、a[2]、……a[n]就以升序排列了。
优点:稳定;
缺点:慢,每次只能移动相邻两个数据。
二、选择排序
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
选择排序是不稳定的排序方法。
n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:
①初始状态:无序区为R[1..n],有序区为空。
②第1趟排序
在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。
……
③第i趟排序
第i趟排序开始时,当前有序区和无序区分别为R[1..i-1]和R(1≤i≤n-1)。该趟 排序从当前无序区中选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1..i]和R分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。
这样,n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果。
优点:移动数据的次数已知(n-1次);
缺点:比较次数多。
三、插入排序
已知一组升序排列数据a[1]、a[2]、……a[n],一组无序数据b[1]、 b[2]、……b[m],需将二者合并成一个升序数列。首先比较b[1]与a[1]的值,若b[1]大于a[1],则跳过,比较b[1]与a[2]的值, 若b[1]仍然大于a[2],则继续跳过,直到b[1]小于a数组中某一数据a[x],则将a[x]~a[n]分别向后移动一位,将b[1]插入到原来 a[x]的位置这就完成了b[1]的插入。b[2]~b[m]用相同方法插入。(若无数组a,可将b[1]当作n=1的数组a)
优点:稳定,快;
缺点:比较次数不一定,比较次数越少,插入点后的数据移动越多,特别是当数据总量庞大的时候,但用链表可以解决这个问题。
四、缩小增量排序
由希尔在19xx年提出,又称希尔排序(shell排序)。
已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。发现当n不大时,插入 排序的效果很好。首先取一增量d(d<n),将a[1]、a[1+d]、a[1+2d]……列为第一组,a[2]、a[2+d]、 a[2+2d]……列为第二组……,a[d]、a[2d]、a[3d]……列为最后一组以次类推,在各组内用插入排序,然后取d'<d,重复上述操 作,直到d=1。
优点:快,数据移动少;
缺点:不稳定,d的取值是多少,应取多少个不同的值,都无法确切知道,只能凭经验来取。
五、快速排序
快速排序是冒泡排序的改进版,是目前已知的最快的排序方法。
已知一组无序数据a[1]、a[2]、……a[n],需将其按升序排列。首先任取数据a[x] 作为基准。比较a[x]与其它数据并排序,使a[x]排在数据的第k位,并且使a[1]~a[k-1]中的每一个数 据<a[x],a[k+1]~a[n]中的每一个数据>a[x],然后采用分治的策略分别对a[1]~a[k-1]和a[k+1]~a[n] 两组数据进行快速排序。
优点:极快,数据移动少;
缺点:不稳定。
六、箱排序
已知一组无序正整数数据a[1]、a[2]、……a[n],需将其按升序排列。首先定义一个数组x[m],且m>=a[1]、a[2]、……a[n],接着循环n次,每次x[a]++.
优点:快,效率达到O(1)
缺点:数据范围必须为正整数并且比较小
六、归并排序
归并排序是多次将两个或两个以上的有序表合并成一个新的有序表。最简单的归并是直接将两个有序的子表合并成一个有序的表。
归并排序是稳定的排序.即相等的元素的顺序不会改变.如输入记录 1(1) 3(2) 2(3) 2(4) 5(5) (括号中是记录的关键字)时输出的 1(1) 2(3) 2(4) 3(2) 5(5) 中的2 和 2 是按输入的顺序.这对要排序数据包含多个信息而要按其中的某一个信息排序,要求其它信息尽量按输入的顺序排列时很重要.这也是它比快速排序优势的地方.
归并排序:归并排序是一种非就地排序,将需要与待排序序列一样多的辅助空间。在使用它对两个己有序的序列归并,将有无比的优势。其时间复杂度无论是在最好情况下还是在最坏情况下均是O(nlog2n)。对数据的有序性不敏感。若数据节点数据量大,那将不适合。但可改造成索引操作,效果将非常出色。
堆排序:由于它在直接选择排序的基础上利用了比较结果形成。效率提高很大。它完成排序的总比较次数为O(nlog2n)。它是对数据的有序性不敏感的一种算法。但堆排序将需要做两个步骤:-是建堆,二是排序(调整堆)。所以一般在小规模的序列中不合适,但对于较大的序列,将表现出优越的性能。
第二篇:各种新能源的优缺点
各种新能源的优缺点
核能 优点:1、核能发电不会排放巨量的污染物质到大气中,不会造成空气污染。2、核能发电不会产生温室效应的二氧化碳。3、核燃料能量密度比起化石燃料高上几百万倍,故核能电厂所使用的燃料体积小,运输与储存都很方便。
缺点:1、核能电厂会产生高低阶放射性废料,必须慎重处理。2、核能发电厂热效率较低,核能电厂的热污染较严重。3、核能电厂投资成本太大,电力公司的财务风险较高。
太阳能 优点:1、普遍:到处都有,可直接开发和利用,且无须开采和运输。2、无害:开发利用太阳能不会污染环境,它是最清洁能源之一。3、巨大:每年到达地球表面上的太阳辐射能约相当于130万亿吨煤。4、长久:太阳的能量是用之不竭的。
缺点:1、不稳定性:由于受到昼夜、季节、地理纬度和海拔高度等自然条件的限制以及晴、阴、云、雨等随机因素的影响。2、效率低和成本高:目前太阳能利用的发展水平,有些方面在理论上是可行的,技术上也是成熟的。但有的太阳能利用装置,因为效率偏低,成本较高。
风能 优点:风能为洁净的能量来源。内蒙古草原上的风力发电机风能设施日趋进步,大量生产降低成本,在适当地点,风力发电成本已低于发电机。风能设施多为不立体化设施,可保护陆地和生态。风力发电是可再生能源,很环保。
缺点:风力发电在生态上的问题是可能干扰鸟类。目前的解决方案是离岸发电,离岸发电价格较高但效率也高。在一些地区、风力发电的经济性不足:许多地区的风力有间歇性,更糟糕的情况是如台湾等地在电力需求较高的夏季及白日、是风力较少的时间;必须等待压缩空气等储能技术发展。风力发电需要大量土地兴建风力发电场,才可以生产比较多的能源。进行风力发电时,风力发电机会发出庞大的噪音,所以要找一些空旷的地方来兴建。现在的风力发电还未成熟,还有相当发展空间。
地热 优点:1、高效节能:地热供暖热量集中在人体收益的高度,热效率高;整个输送过程热损失小。地热供暖的热能能够利用充分。2、舒适保健。3、热稳定性好:由于地面层及蓄热量大,因此在间歇供暖的条件下室内温度变化缓慢,热稳定性好。4、节省空间。5、室温调节方便:地热分水器中的每一个环路都配置了各自的控制阀门,每个房间可以按各自所需的室温,调节流量,做到最大限度节省能源和开支。 缺点:1、对楼层高度有8cm左右的占用。2、铺设木地板则有干裂的麻烦,最好选择地砖或地热用复合式地板。3、设定温度不能太高,否则会降低输送管道的使用寿命。
海洋能 优点:取之不竭的可再生资源,潮汐能源有规律可循,开发规模大小均可。
缺点:获取能量的最佳手段尚无共识,大型项目可能会破坏自然水流、潮汐和生态系统。
生物质能 优点:1、提供低硫燃料,2、提供连接能源。3、讲有机物转化成燃料可减少环境公害。4、与其他非传统性能源相比较,技术上的难题较少
缺点:1、植物仅能讲极少量的太阳能转化成有机物2、单位土地面的有机物能量偏低3、缺乏适合栽种植物的土地4、有机物的水分偏多
氢能 优点:1、氢的原料是丰富的水2、氢燃烧生成的是水,不污染环境,不影响地球上的物质循环3、氢的储藏很容易
缺点:1、制取成本高,需要大量的电力2、生产、存储难:氢气密度小,很难液化,高压存储不安全
新能源产业规模持续扩大,产业结构不断优化。自20xx年以来,中国新能源产业规模上升到新的台阶。除了产业规模不断放大以外,中国新能源产业结构也不断优化升级。新能源各细分产业都得到不同程度发展,同时,产业技术不断成熟,和国外同类企业竞争的能力也不断提高。在制造业领域,不管是太阳能、风能还是生物质能领域,民营企业都是中国新能源产业发展的主要带动力量。在新能源领域,打通产业链上下游的企业联合越来越普遍。新能源产业发展地域特征越来越明显。在国家现有政策支持下,未来太阳能、风能将得到进一步发展,生物质发电等新能源发展潜力巨大。除太阳能、风能外,国内许多公司亦开始涉足生物质能源、沼气利用等新能源的相关产业,如丰原生化生产燃料乙醇、石油济柴大规模介入沼气发电等。