排序算法
star_fighting
自我监督 自我学习
展开
-
排序算法--快排的优化
排序算法–快排的优化下面是我写的一种快排:#include <iostream>#include <stdlib.h>using namespace std;void Print(int arr[],int len){ int i=0; for(i;i<len;i++) { cout<<arr[i]<<" "; }...原创 2020-04-29 11:26:16 · 182 阅读 · 0 评论 -
排序算法--桶排序(基数排序)
排序算法–桶排序(基数排序)#include <stdio.h>#include <stdlib.h>#include <math.h>//获取最大位数的位数int GetMaxNumFin(int arr[],int len){ //0--个位 1--十位 2--百位...... int max=-1; int i=0; int coun...原创 2020-04-28 18:59:42 · 122 阅读 · 0 评论 -
排序算法--归并排序
排序算法–归并排序那这里大家有疑问了,那我们怎么将两个排序好的数组防到一块就有序呢我们是要开辟一个全新的数组哦,用来保存我们排序好的数组;我们这里设置两个指针一个指向第一个数组的头部,一个指向第二个数组的头部,然后比较,将较小的数字放置在开辟的数组中,然后放入元素的数组的指针+1;开辟的数组的指针也要+1哦;最后将开辟的数组copy给原数组哦,这样就完成了归并排序;这里演示代码:...原创 2020-04-28 18:21:23 · 109 阅读 · 0 评论 -
排序算法--堆排序
排序算法–堆排序堆排序(Heapsort)是指利用堆这种数据结构(后面的【图解数据结构】内容会讲解分析)所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。分为两种方法:大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列;小顶堆:每个节点的值都小于...原创 2020-04-28 12:09:46 · 195 阅读 · 0 评论 -
排序算法--shell排序
排序算法–shell排序shell排序是优化后的插入排序,它是按照增量将数组逐渐划分为有序状态,数据慢慢趋于游戏,为缩减增量排序;先取一个增量序列(例如:5,3,1)将一串需排序的数列先按照5分组,每组三个数。对每组三个数进行排序。接下来按照3分组,每组五个数。对每组五个数进行排序。接下来是1 也就是进行直接插入排序。Shell排序的执行时间依赖于增量序列。好的增量序列的共同特征:① 最...原创 2020-04-28 10:29:04 · 507 阅读 · 0 评论 -
排序算法--直接插入排序
经典排序算法–直接插入排序直接插入排序插入排序(Insertion sort)是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,算法适用于少量数据的排序,时间复杂度O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组...原创 2020-02-17 15:03:24 · 567 阅读 · 0 评论 -
排序算法--快速排序
经典排序算法–快速排序快速排序快速排序(Quicksort)是对冒泡排序的一种改进。 [1] 快速排序由C. A. R.Hoare在1960年提出。基本思想是:通过一趟排序 将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列简单来说分为三步骤:...原创 2020-02-16 22:48:12 · 142 阅读 · 0 评论 -
排序算法--选择排序
经典排序算法–选择排序选择排序前面我们分析了冒泡排序,接下来我们分析选择排序选择排序(Selection sort)是一种简单直观的排序算法。工作原理:第一次从待排序的数据元素中选出最小(或最大)的一个元素(假设存在的最大值或者最小值,一般我们默认为第一位或者最后一位),存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全...原创 2020-02-16 21:39:58 · 92 阅读 · 0 评论 -
排序算法--冒泡排序
经典排序算法–冒泡排序冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排...原创 2020-02-16 21:12:21 · 224 阅读 · 0 评论