范文无忧网计划总结工作总结

几种经典排序算法优劣比较的C程序实现

01月06日 编辑 fanwen51.com

[市投资环境的优劣势分析及改善对策]投资环境是一个地区经济社会发展进步的标志,好的投资环境是一笔巨大的无形资产,对外可以增强影响力、吸引力和竞争力,[找文章到☆()一站在手,写 作无忧!]对内可以凝聚人心、鼓舞...+阅读

一、低级排序算法1.选择排序

(1)排序过程 给定一个数值集合,循环遍历集合,每次遍历从集合中选择出最小或最大的放入集合的开头或结尾的位置,下次循环从剩余的元素集合中遍历找出最小的并如上操作,最后直至所有原集合元素都遍历完毕,排序结束。

(2)实现代码//选择排序法 template void Sort::SelectSort(T* array, int size) { int minIndex;for(int i = 0; iarray[j]) { minIndex = j;} } if(minIndex != i) { Swap(array, i, minIndex);} } } (3)分析总结 选择排序时间复杂度比较高,达到了O(n^2),每次选择都要遍历一遍无序区间。

选择排序对一类重要的元素序列具有较好的效率,就是元素规模很大,而排序码却比较小的序列。另外要说明的是选择排序是一种不稳定的排序方法。2.冒泡排序

(1)排序过程 冒泡排序的过程形如其名,就是依次比较相邻两个元素,优先级高(或大或小)的元素向后移动,直至到达序列末尾,无序区间就会相应地缩小。下一次再从无序区间进行冒泡操作,依此循环直至无序区间为1,排序结束。

(2)实现代码//冒泡排序法 template void Sort::BubbleSort(T* array, int size) { for(int i = 0; i

二、高级排序算法

(1)排序过程 归并排序的原理比较简单,也是基于分治思想的。

它将待排序的元素序列分成两个长度相等的子序列,然后为每一个子序列排序,然后再将它们合并成一个序列。

(2)实现代码//归并排序 template void Sort::MergeSort(T* array, int left, int right) { if(left

延伸阅读:

民营道路运输企业的优劣势分析及发展思考民营道路运输企业的优劣势分析及发展思考伴随中国改革开放与国民经济发展的持续推进,中国民营经济面临着重大的发展机遇,在消除垄断、减少国有比重、允许竞争的道路运输行业这...

自我认知文化工作总结优劣势分析怎么写一是找准切入点。无论做什么事情,都有个找切入点的问题。切入点找到了,找准了,工作不仅主动,还能起到纲举目张、全局皆活的作用。初步打算,明年准备以月度总结为切入点,以信息的形...

请问一下有谁能总结数据结构中排序章内介绍各种算法的时间复杂1.插入排序:每次将一个待排的记录插入到前面的已经排好的队列中的适当位置。 ①.直接插入排序 直接排序法在最好情况下(待排序列已按关键码有序),每趟排序只需作1次比较而不需要...

推荐阅读
图文推荐
栏目列表