排序算法
繁星璀璨G
单身,求对象
展开
-
排序算法-插入排序
排序算法-插入排序概念概念将无序的数据一个一个的插入到一组有序的数据中去,如此反复循环,直到全部排好顺序。具体实现:在插入第n个数据时,R1, R2,R~3 ~ …,’是有序的,将即将要排序的与该数据组排序,从而找的合适的位置插入,插入位置及其后的记录依次向后移动。平均时间复杂度:O(n2)算法实现:// 非递减有序排序// 非递减有序排序void insertsort_ASC(vector<int> &data){ int size = data.siz原创 2020-12-20 21:38:37 · 555 阅读 · 0 评论 -
排序算法-冒泡排序
n个记录进行冒泡排序的方法是:首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则交换,然后继续比较;依次类推,直到比较n-1与n;这是第一趟冒泡排序。然后进行第二趟,对前n-1个遍历排序,最多进行n-1趟。优化:若某趟没有进行元素交换,则可以直接结束排序。冒泡排序是一种稳定的排序方法,其时间复杂度为,空间复杂度为O(1),...原创 2021-01-20 22:23:00 · 1585 阅读 · 0 评论 -
排序算法-简单选择排序
n个记录进行简单选择排序的基本方法是:通过n-i(i<=i<=n)在此关键字之间的比较,从n-i+1的记录中选出最大(小)记录,并和第i个记录进行交换,当i等于n时所有记录有序排列。简单选择排序法在最好的情况下(已有序),不需要移动元素,次数0。在最坏情况下,前趟中,每趟移动次数为3次(两个数组元素交换值),其后不再移动元素,共进行n-1趟排序,总移动次数为。总比较次数为简单选择排序是一种不稳定的排序方法,其时间复杂度为。空间复杂度为。// 非递减有序排序void s.原创 2021-01-24 20:10:38 · 1669 阅读 · 1 评论