这个程序的运行结果 注解: 在处理字符串时, 我们通常使用一个指向包含那个字符串的缓冲区的指针, 如上图, 应为指针要比长度大小可变的字符串自 ...
本文章只对选择排序和冒泡排序进行介绍 选择排序实际上是从 到length ,选择某个元素与其他的元素进行大小比较,如果大于就交换,其他情况不做操作,如图: 冒泡排序实际上是先选择某个元素,然后从最后一个元素依次往前比较 不超过选择的元素 ,如果大于就交换,否则不变,如图 从图可以看出排序出的数仿佛是从地下往上冒出一样,因此称之为冒泡排序法。选择排序和冒泡排序算数复杂度都是n n ,效率不是太高 ...
2016-12-21 14:45 0 30957 推荐指数:
这个程序的运行结果 注解: 在处理字符串时, 我们通常使用一个指向包含那个字符串的缓冲区的指针, 如上图, 应为指针要比长度大小可变的字符串自 ...
冒泡排序是一种稳定排序,时间复杂度平均为O(n^2),最好的时间复杂度为O(n),最坏为O(n^2)。 排序时每次只比较当前元素与后一个 元素的大小,如果当前元素大于后一个元素,则交换,如此循环直到队尾,每轮排序都可以保证将当前排序下最大的元素送到未排序部分的队尾。 有n个元素要排列 ...
这篇博客中出现的问题已经修改:https://blog.csdn.net/ac_hexin/article/details/116781200 C语言实现九大排序算法 直接插入排序 折半插入排序 希尔排序 冒泡排序 快速排序 直接选择 ...
一、堆的概念 所谓堆,它是一个数组,也能够被看成一个近似的全然二叉树。树上每一个结点相应数组的一个元素。二叉堆分为二种:最大堆和最小堆。本文主要介绍最大堆,最小堆类似。最大堆的特点:对于随意某个结点,该结点的值大于左孩子、右孩子的值,可是左右孩子的值没有要求。 二、堆排序算法 ...
新人新气象,我又来了,C语言实现选择排序。很基础的东西,原理什么的就不扯了。 点击显示伪代码 ...
从键盘任意输入一组数, 比如:3216549870。要求对它进行排序,使它顺序排列。 我理解的堆排序思路如下: NO.1 首先想着让这组数按下面这种方式形成完全二叉树树型结构。 A 我先给出这棵完全二叉树所具备的一些基本性质: a: 不管这组 ...
堆排序 堆排序是利用堆的性质进行的一种选择排序。下面先讨论一下堆。 1.堆 堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key ...
选择排序是不稳定排序,时间复杂度为O(n^2)。 选择排序类似插入排序,把数组分为两部分,一部分已经排好序,一部分未排序。 刚开始的时候所有的元素都未排序,已排序的部分为空。就好像你手里有十张牌,左手有零张,右手有10张。每次从右手的牌中取最小的一张插入到左手的牌末尾,右手的牌插完了 ...