一、选择排序法 简单选择排序是最简单直观的一种算法,基本思想为每一趟从待排序的数据元素中选择最小(或最大)的一个元素作为首元素,直到所有元素排完为止,简单选择排序是不稳定排序。 for (int i = 0; i < arr.length - 1; i++) { ... 2 简单插入排序在最好情况下 ...
分类:
编程语言 时间:
2019-07-25 19:17:38
阅读次数:
105
原文链接:https://www.sohu.com/a/252870668_818692 ...
分类:
编程语言 时间:
2019-07-01 00:56:53
阅读次数:
110
1、 冒泡排序 冒泡排序(bubble sort),是一种基础的交换排序。基本思想是,把相邻的元素两辆进行比较,当一个元素大于右侧相邻元素时,交换它们的位置;当一个元素小于或等于右侧相邻元素时,位置不变。 冒泡排序是一种稳定排序,值相等的元素并不会打乱原本的顺序。由于该排序算法每一轮都要遍历所有元素 ...
分类:
编程语言 时间:
2019-06-26 01:06:10
阅读次数:
145
算法 排序算法 稳定排序 待排序序列中相等元素在排序完成后,原有先后顺序不变。 非稳定排序 有序度 待排序序列中有序关系的元素对个数。 逆序度 1. 插入排序 遍历有序数组,对比待插入的元素大小,找到位置。把该位置后的元素依次后移。 时间复杂度: O(N2) 2. 选择排序 区分已排序区间和未排序区 ...
分类:
编程语言 时间:
2019-06-17 01:16:56
阅读次数:
115
// 不稳定排序#include using namespace std; int main() { int arr[100], tmp; for (int i = 0; i > arr[i]; for (int j = 0; j arr[k]) { tmp = arr[j]; arr[j] = a... ...
分类:
编程语言 时间:
2019-05-03 14:49:11
阅读次数:
153
排序:稳定排序算法,不稳定排序算法 如上图,若两个5排序之后交换了位置就是不稳定的,没有交换位置就是稳定排序 1.选择排序 冒泡是相邻的两个交换,选择法是首元素与最小的交换。 2.冒泡排序 冒泡算法的优化,在待排序数据处于一种趋于有序的情况,可以减少判断次数,比如:1,2,3,4,7,5,6 3.插 ...
分类:
编程语言 时间:
2019-02-03 00:51:33
阅读次数:
202
归并排序原理: 利用分治的思想,通过递归来实现的, java代码: 性能分析: 时间复杂度:O(n*logN) 空间复杂度:O(n) 原地排序:否 稳定排序:是 ...
分类:
编程语言 时间:
2019-01-30 16:07:29
阅读次数:
209
简单选择排序原理: 性能分析: 时间复杂度:O(n^2) 空间复杂度:O(1) 原地排序:是 稳定排序:否 ...
分类:
编程语言 时间:
2019-01-30 13:07:21
阅读次数:
143
堆排序是利用堆这种数据结构而设计的一种排序算法,属于选择排序,它的最坏、最好、平均复杂度均为O(Nlog2^N),属于不稳定排序;堆是具有以下性质的完全二叉树:每个节点的值都大于或等于其左右孩子节点的值,称为大顶堆;每个节点的值都小于或等于其左右孩子节点的值,称为小顶堆;用简单的公式描述一下堆的定义 ...
分类:
编程语言 时间:
2018-12-31 22:39:18
阅读次数:
329
排序算法 冒泡排序 原理:把相邻的元素两两比较,根据大小来交换元素的位置。 原始的冒泡排序是稳定排序。由于该排序的每一轮要遍历所以元素,轮转的次数和元素数量相当,所以时间复杂度是 O(N^2)。 java代码表达如下: (使用双循环来进行排序。外部循环控制所有的回合,内部循环代表每一轮的冒泡处理,先 ...
分类:
编程语言 时间:
2018-12-15 16:20:19
阅读次数:
203