![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
文章平均质量分 65
小白的进阶之路
努力
展开
-
排序算法研究之冒泡排序(bubble soft)
冒泡排序1、算法思想冒泡排序是最简单,较好理解的排序方法。它通过每次比较数组中相邻的两个元素值,使数组中较小的值像气泡一样逐渐“上浮”到数组头部,较大的值逐渐下浮到数组尾部。(默认升序,降序为反过程)2、优缺点优点:简单,易于理解和实现,稳定,空间复杂度O(1)缺点:因为要比较多轮,时间复杂度较高O(n2),最坏情况要比较n-1轮(n是数组中元素个数)3、具体代码(c++)/* b...原创 2018-12-31 11:08:58 · 672 阅读 · 0 评论 -
排序算法研究之直接插入排序(insert soft)
插入排序(insert soft)上一节我们介绍了冒泡排序的基本思想和实现过程,本节我们讲解第二个排序算法-----插入排序。1、算法思想将数组的第一个元素看成一个有序的序列,然后把第二个元素到最后一个元素看作是未排序的序列。从头到尾扫描未排序的序列(第二个元素到末尾),将每次扫描的元素插入到有序序列合适的位置。注:每次扫描的元素从排好序的序列的最后一个元素开始比较,找到位置立刻停止2...原创 2018-12-31 12:01:37 · 808 阅读 · 0 评论 -
排序算法研究之快速排序(quick sort)
前面两个小节,我们分别介绍了冒泡排序,插入排序,在我们本节讲解一种更加高效的排序方法,快速排序,也即是常说的快排。1、算法思想实际上,快排是对冒泡排序的一种改进,采用分而治之的思想。在待排序表 A[1,2…n]中选取一个基准值pivot(通常选取序列首元素);通过一趟排序操作将待排序表分为独立的两部分A[1,2…k-1],A[k+1,…n]。其中A[1,2…k-1]都是比基准值小的元素,...原创 2018-12-31 18:05:20 · 720 阅读 · 0 评论 -
排序算法研究之选择排序(select sort)
/* bubble sort */# include<iostream>using namespace std;void selectsort(int[], int);int main(){ int array [] = {55,2,6,4,32,12,9,73,26,37}; int len = sizeof(array) / sizeof(int);...原创 2019-01-06 23:08:24 · 697 阅读 · 0 评论 -
排序算法研究之希尔排序(shell sort)
前面几个小节,我们分别介绍了冒泡排序,插入排序,快速排序 选择排序本节,我们介绍插入排序的改进版的希尔排序。希尔排序是1959年,Shell发明的,这是第一个突破O(n2)的排序算法,他与直接插入排序不同的是,他会优先比较距离较近的元素。因此,希尔排序又叫做缩小增量排序。1、算法思想首先,将待排序的序表分割成若干个形如L[i,i+d,i+2d,…… i+kd]的“特殊”子表,然后分别的进行直...原创 2019-01-07 16:24:05 · 23502 阅读 · 10 评论