搜索

什么是(c语言编程)顺序比较法不是冒泡和选择额

gecimao 发表于 2019-08-19 21:25 | 查看: | 回复:

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  答案由提问者自己选择,并不代表爱问知识人的观点 揪错 ┆ 评论 ┆ 举报

  [学者] 相关知识介绍(所有定义只为帮助读者理解相关概念,并非严格定义):

  简单地说就是所有相等的数经过某种排序方法后,仍能保持它们在排序之前的相对次序,我们就

  则我们说这种排序是稳定的,因为a2排序前在a4的前面,排序后它还是在a4的前面。假如变成a1,a4,

  在排序过程中,所有需要排序的数都在内存,并在内存中调整它们的存储顺序,称为内排序;

  在排序过程中,只有部分数被调入内存,并借助内存调整数在外存中的存放顺序排序方法称为外排序。

  在要排序的一组数中,假设前面(n-1) [n=2] 个数已经是排

  *(x+j+1) = *(x+j); /*如果满足条件就往后挪。最坏的情况就是t比下标为0的数都小,它要放在最前面,j==-1,退出循环*/

  k = j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/

  多个元素交换。D.L.shell于1959年在以他名字命名的排序算法中实现

  快速排序是不稳定的。最理想情况算法时间复杂度O(nlog2n),最坏O(n2)

  if (low high) /*要排序的元素起止下标,保证小的放在左边,大的放在右边。这里以下标为low的元素为基准点*/

  *(x+i) = *(x+j); /*上面的循环退出:即出现比基准点小的数,替换基准点的数*/

  *(x+j) = *(x+i); /*上面的循环退出:即出现比基准点大的数,放到右边*/

  初始时把要排序的数的序列看作是一棵顺序存储的二叉树,调整它们的存储顺序,

  交换。然后对前面(n-1)个数重新调整使之成为堆。依此类推,直到只有两个节点

  从算法描述来看,堆排序需要两个过程,一是建立堆,二是堆顶与堆的最后一个元素

  交换位置。所以堆排序有两个函数组成。一是建堆的渗透函数,二是反复调用渗透函数

  输入:数组名称(也就是数组首地址)、参与建堆元素的个数、从第几个元素开始

  ------------------------------------------------------------------------------------------------Mr_computer

  呵呵,我刚刚查了下资料,结果让我有些郁闷,顺序比较法指每两个数比较,满足条件就交换,对于N个数,要交换N-1次。这个 好像就是冒泡吧。但资料上却偏偏说这与冒泡有些区别。我真是搞不明白,资料说法有误吗?冒泡法是把全部的数都排一边 你那个顺序比较法是只把一个数比到最后这就是区别吧 这样只找出一个最大或最小的数 不是排序只是比较

本文链接:http://baumseelen.com/duipaixu/792.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部