排序
Ninja-_-
在校计算机大学生
展开
-
表排序(插入排序)
#include<iostream>#include<string>using namespace std;void insert_sort(int R[],int size){//第一次排序 将T数组排序 int* T; T = new int [size]; for (int i = 0;i < size-1;i++) { ...原创 2018-11-29 23:21:46 · 1826 阅读 · 0 评论 -
RadixSort(基数排序)
基数排序(英语:Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数它是这样实现的:将所有待比较数值(正整数)统一为同样的数字长度,数字较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。 ...原创 2018-12-12 22:28:22 · 657 阅读 · 0 评论 -
MergeSort(归并排序)
MergeSort(归并排序) 归并排序就是通过不断的归并来实现的,将数组用一个固定的长度实现各个部分的归并后,实现了各个部分的有序,再将长度改变,实现各个部分之间的有序,就这样一步步实现整个数组的有序。#include<iostream>using namespace std;void MergeSortbefore(int arr[], int start, int...原创 2018-12-08 22:55:46 · 203 阅读 · 2 评论 -
HeapSort(堆排序)
HeapSort(堆排序)排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。在堆的数据结构中,堆中的最大值总是位于根节点(在优先队列中使用堆的话堆中的最小值位于根节点)。堆中定义以下几种操作: 最大堆调整(Max Heapify):将堆的末端子节点作调整,...原创 2018-12-05 20:02:48 · 223 阅读 · 0 评论 -
CountingSort(计数排序)
CountingSort计数排序就是用一个count数组来储存每一个数据的比自己小的数的个数,然后根据这个来判断这个数据在新的数组newarr[],中的顺序。 #include<iostream>using namespace std;void CountingSort(int arr[],int length){ int *newarr=new int [...原创 2018-12-05 19:55:31 · 182 阅读 · 0 评论 -
冒泡排序(BubbleSort)
冒泡排序(bubblesort) 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数据,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序,可以原地排序。尽管这个算法是最简单了解和实现的排序算法之一...原创 2018-12-01 22:55:22 · 574 阅读 · 0 评论 -
ShellSort(希尔排序)
希尔排序(ShellSort)又叫缩小增量排序,它也是一种插入排序,但是在时间效率上面与前面的几种有着明显的提升基本思想:将整个待排的记录序列分割为若干个子序列,分别将这些进行直接插入排序,待整个序列基本有序的时候,在对整体进行一次直接插入排序。例如,假设有这样一组数[ 13 14 94 33 82 25 59 94 65 23 45 27 73 25 39 10 ],如果我们以步长为5开...原创 2018-12-01 22:39:02 · 191 阅读 · 0 评论 -
折半排序(插入排序)
折半排序(binary insert sort )也是插入排序的一种,只是这种适合于数据很少的时候的一种排序方法,相比于直接的插入排序,折半排序减少了“比较”,和“移动”这两种步骤.算法思想还是二分法 #include <iostream>using namespace std;void BinarySort(int a[],int length){ ...原创 2018-12-01 22:26:26 · 452 阅读 · 0 评论 -
InsertSort(插入排序)
插入排序(Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到{\displaystyle O(1)}的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。算法思想就是不断与前面的数据比...原创 2018-12-01 21:30:07 · 7436 阅读 · 1 评论 -
SelectSort(选择排序)
SelectSort(选择排序)选择排序与冒泡排序的思想有点像,就是交换,找到一个min,然后不停的swap,直到小的数全部交换到前面,这样数组就完成了排序。算法思想与冒泡很像,感兴趣的可以看看我的BubbleSort。代码如下:#include<iostream>#include<cmath>#include<vector>using ...原创 2018-12-06 19:57:21 · 2236 阅读 · 0 评论