排序算法相关的时间复杂度和进程稳定性,快排的原理

排序图表:
排序算法相关的时间复杂度和进程稳定性,快排的原理_第1张图片
有序的变化是矢量变化(矢量变化存在正负):(内部有序的部分+某个增量元素(同趋势))整体为具有同样有序趋势的新的有序部分。
一、插入排序(逐个插入)(基底空容器)
每次将某个待排序的数据,跟前面已经有序的序列数字一一比较找到自己合适的位置,插入到序列中,直到全部数据插入完成。
二、希尔排序(跳跃式插入)(基底空容器)
先将整个待排序的元素序列分割成若干个小规模子序列组(由相隔某个“增量”元素组成),在单个的小规模子序列组内分别进行直接插入排序,然后依次缩减分界增量元素再进行下一轮排序轮回,待整个待排序的元素序列中的全部元素基本上有序(分界增量元素数目足够少)时,再对全体元素进行一次最后的直接插入排序。由于希尔排序是对相隔了若干距离的小部分数据进行内部直接插入式排序,因此形象的称希尔排序为“跳着插”
三、冒泡排序(基底充满元素的容器)
冒泡排序:小数据上冒(升序)/大数据上冒(降序)
对两个相邻的数据进行比较并采取小数据上冒(升序)(前位置)/大数据上冒(降序)(前位置)。小数据上冒每次遍历后最小的数据浮在当前序列最上面/大数据上冒每次遍历后最大的数据浮在当前序列最上面,重复N轮遍历后即可以使数组序列有序。

冒泡排序改进1:在某次遍历中如果没有数据交换,说明整个数组已经有序。因此通过设置标志位来记录此次遍历有无数据交换就可以判断是否要继续循环。

冒泡排序改进2:记录某次遍历时最后发生数据交换的位置,这个位置之后的数据显然已经有序了。因此通过记录最后发生数据交换的位置就可以确定下次循环的范围了。

四、下沉排序(基底充满元素的容器)
下沉排序:小数据下沉(降序)/大数据下沉(升序)
对两个相邻的数据进行比较并采取小数据下沉(降序)(后位置)/大数据下沉(升序)(后位置)。小数据下沉每次遍历后最小的数据沉到当前序列最下面/大数据下沉每次遍历后最大的数据沉到当前序列最下面,重复N轮遍历后即可以使数组序列有序。

你可能感兴趣的:(笔记,排序)