
Algorithm
以实战为线索,逐步深入开发各个环节.
Ilson_
花儿为什么这样红!!!
展开
-
冒泡排序
简述 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名"冒泡排序"。算法思路 1.比较相邻的元素。如果第一...原创 2021-04-06 22:37:23 · 111 阅读 · 0 评论 -
希尔排序
简述 希尔排序(Shell Sort )是 D .L.希尔(D.L.Shell)提出的 "缩小增量" 的排序方法。它的作法不是每次一个元素挨一个元素的比较,而是初期选用大跨步(增量较大)间隔比较,使记录跳跃式接近它的排序位置;然后增量缩小,最后增量为 1 。这样记录移动次数大大减少,提高了排序效率。希尔排序对增量序列的选择没有严格规定。算法思路 1.先取一个正整数 d1(d1< n) ,把全部记录分成 d1个组,所有距离为 d1的倍数的记录看成一组,然后在各组...原创 2021-04-06 22:13:53 · 317 阅读 · 0 评论 -
折半插入排序
简介 当直接插入排序进行到某一趟时,对于数据来讲,前边n个记录已经按关键字有序。此时不用直接插入排序的方法,而改为折半查找,找出应插的位置然后插入,这种方法就是折半插入排序(Binary Insertion Sort)。折半插入排序是对插入排序算法的一种改进,所谓排序算法过程,就是不断的依次将元素插入前面已排好序的序列中。算法思路 在插入到已排序的数据时采用来折半查找(二分查找),取已经排好序的数组的中间元素,与插入的数据进行比较,如果比插入的数据大,那么插入的数据肯...原创 2021-03-31 22:25:37 · 317 阅读 · 0 评论 -
直接插入排序
简述 直接插入排序( straight insertion sort )是一种最简单的排序方法。它的基本操作是将一个记录插入到一个长度为 m (假设)的有序表中,使之仍保持有序,从而得到一个新的长度为 m + 1 的有序表。算法思路 设有一组关键字{ K 1 , K 2 ,…, K n };排序开始就认为 K 1 是一个有序序列;让 K 2 插入上述表长为 1 的有序序列,使之成为一个表长为 2 的有序序列;然后让 K 3 插入上述表长为 2 的有序序列,使之成为一个......原创 2021-03-30 22:21:39 · 143 阅读 · 0 评论 -
快速排序
简述 快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序,它采用了一种分治的策略。快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用。 快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。代码#include <QDebug>#include <QCoreApplication>...原创 2021-03-16 22:59:42 · 200 阅读 · 0 评论 -
堆排序
简述 堆是具有以下性质的完全二叉树:每个节点的值都大于或等于其左右孩子的节点的值,称为大顶堆;每个节点的值都小于或等于其左右孩子节点的值,成为小顶堆。 堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元素重新构造成一个堆,这样会得到n个元素的次小值。如此反复执行,便能得到一个有序序列了。代码#include <QDebug>#include &l...原创 2021-03-13 11:56:12 · 147 阅读 · 1 评论