- 博客(9)
- 资源 (3)
- 收藏
- 关注
原创 Qt开发C++,比较实用的函数(持续记录中)
1. std::string 和 QString 的转换// std::string 转换为 QStringQString MainWindow::string_to_QString(const std::string str){ return QString::fromLocal8Bit(str.data());}// QString 转换为 std::stringstd::string MainWindow::QString_to_string(const QString q_
2020-12-12 19:45:46
556
原创 基数排序
基数排序是桶排序的扩展。它是通过键值的各个位的值将要排序的元素分配至某些桶中,达到排序的作用。它是效率高的稳定性排序法。稳定性是指:重复元素在排序过程中,其前后顺序不会发生改变。基数排序的基本思想是:将所有待排序的元素统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成之后,该序列就是一个有序序列。例如:53,3,542,748,14,214进行基数排序第一轮:1.将每个元素的个位数取出,根据个位数判断这个数应该放在哪个对应的
2020-08-31 10:02:05
175
3
原创 堆排序
堆排序是选择排序的一种,它的基本思想是:1.将待排序的元素构造成一个大顶堆/小顶堆(也就是一个二叉树形式,大顶堆:父结点的左边都比它小,右边都比它大)。2.堆顶的元素是最大值,也是根节点。3.将其与末尾元素交换,此时末尾元素变为最大值。4.然后将剩余n-1个元素重新构造成一个堆,循环操作,就能得到有序序列了。例如:针对数组 { 4,6,8,5,9 }来说1.从最后一个非叶子节点开始调整,在数组中查找最后一个非叶子节点的方法是:arr.length/2-1=5/2-1=1,也
2020-08-30 23:33:20
108
原创 归并排序
归并排序利用归并的思想实现排序,使用分治策略。将问题分为一些小的问题然后递归求解,再将分阶段得到的答案合在一起。例如:8,4,5,7,1,3,6,2进行归并排序在分阶段向下拆分: 8,4,5,7,1,3,6,2 8,4,5,7 1,3,6,28 4 5 7 1 3 6 2在治阶段向下合并:4,8 5,...
2020-08-30 16:13:00
242
原创 快速排序
快速排序是冒泡排序的改进。基本思想是:先将要排序的数据分成两部分,其中一部分的所有数据比另一部分要小。然后对这两部分数据分别进行快速排序。例如:2,10,8,22,34,5,12,28,21,11进行快速排序,基准数每个人的选择不同,这里使用最后一位数作为演示,下面的示例只做理解算法思路使用。首先,选取基准数:11,则数据分为2,10,8,5,(11),22,34,12,28,21接着分别对左右组的数据进行相同的拆解过程2(5)10,8,11,12,(21),22,28,342,5,
2020-08-29 23:10:22
81
原创 希尔排序
希尔排序是将要排序的数组进行分组。例如8,9,1,7,2,3,5,4,6,0初始分组为length=10:10/2 = 5,分为5组即(8,3),(9,5),(1,4),(7,6),(2,0)对这五组分别进行直接插入排序,排序后:3,5,1,6,0,8,9,4,7,2然后缩小增量为 5/2=2,分为2组:(3,1,0,9,7)和(5,6,8,4,2)继续对上面两组进行直接插入排序,排序后:0,2,1,4,3,5,7,6,9,8接着缩小增量为 2/2=.
2020-08-29 21:56:07
251
原创 插入排序
插入排序的思想是:将要排序的数组看成一个有序表和一个无序表,使用无序表中的元素和有序表中元素进行比较,依次将无序表中元素插入有序表。例如:17,3,25,14,20,9,插入排序,第一个数默认有序。第一次插入:(3,17),[25,14,20,9]第二次插入:(3,17,25),[14,20,9]第三次插入:(3,14,17,25),[20,9]第四次插入:(3,14,17,20,25),[9]第五次插入:(3,9,14,17,20,25)
2020-08-29 20:22:37
150
原创 选择排序
例如:45,23,50,10,进行选择排序。第一轮:10,23,50,45第二轮:10,23,50,45第三轮:10,23,45,501. 进行了数组大小 - 1 轮排序,每一轮又是一个循环。2. 先假定当前这个数是最小数,然后和后面的数进行比较,如果有最小,则重新确定最小数。3. 遍历到数组最后时,就得到本轮最小数和下标。选择排序由于比较次数少,本身有判断是否进行交换,运行速度比冒泡排序要快。public void SelectSort(int[]
2020-08-29 19:58:43
107
原创 冒泡排序及其优化方式
冒泡排序及其优化方式例如:3,9,1,2,5这五个数进行冒泡排序第一趟排序:(1)3,9,1,2,5(2)3,1,9,2,5(3)3,1,2,9,5(4)3,1,2,5,9第二趟排序:(1)1,3,2,5,9(2)1,2,3,5,9(3)1,2,3,5,9第三趟排序:(1)1,2,3,5,9(2)1,2,3,5,9第四趟排序:(1)1,2,3,5,9从上面排序过程可知,第二趟已经排好序了,不需要进行第三次、第四次的排序。.
2020-08-29 19:24:19
161
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人