排序算法
zyh_helen
Helen , 他 , 很努力 !
展开
-
打擂台算法
算法描述:擂台上怎样决定出最后的优胜者? 先找一个人站在台上,第二个人上去与之比武,获胜者留在擂台上。再上去第三个人,与台上的人(即刚才的得胜者)比武,胜者留在台上,败者下台,直到所有的人都比试过后,最后留在擂台上的即是冠军!应用:求一组数据中的最大值或者最小值问题描述:有一个2*3的矩阵,求其中的最大值(最小值),并输出其所在的行号以及列号代码如原创 2015-04-06 21:56:56 · 10119 阅读 · 0 评论 -
选择排序---while( scanf("%d",&n)!= EOF)与getchar()简介及其存在的问题,
基本思想:n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:①初始状态:无序区为R[1..n],有序区为空。②第1趟排序在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区。……③第i趟排序原创 2015-04-19 18:33:45 · 1778 阅读 · 0 评论 -
冒泡法排序
冒泡排序算法的运作如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。代码如下:// 起泡法排序:// n个元素,比较原创 2015-04-06 21:28:17 · 1058 阅读 · 0 评论 -
改进版冒泡排序
冒泡法排序:改进之处:n个元素比较n-1趟,第i趟比较n-i次若在其中的某一趟排序中:若始终未发生元素的交换说明已经排序号好,函数结束!原创 2015-04-26 19:13:44 · 2132 阅读 · 0 评论 -
【排序算法】之堆排序的实现
#includeusing namespace std;/* 1:找到第一个非叶子节点的位置cur:数组元素个数size/2-1 2:从cur开始,依次将各子树调整为最大堆--->整体成为最大堆 3:堆顶元素与数组最后一个元素交换 4:数组元素减1,重复执行上述操作*/void AdjustUp(int *arr, int size){ int cur = size / 2原创 2015-12-10 16:21:02 · 555 阅读 · 0 评论 -
【排序算法】之插入排序的实现
#includeusing namespace std;void InsertSort(int *arr, int size){ //第一个数视为有序的,所以从第二个数开始插入 for (int i = 1; i < size; ++i) { int tmp = arr[i];//使用临时变量保存要插入的元素 int j; //如果前面的数比要插入的数值大,就往后移动原创 2015-12-10 16:28:38 · 518 阅读 · 0 评论