![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序
酸菜鱼的鱼
Linux rtos 驱动应用开发 本博客主要用于工作学习的总结和备份,欢迎大家留言评论交流,谢谢
展开
-
c++中使用stl中的vector 将一个文件中的整形数据排序并将排序后的数据存入到另一个文件中(bubble sort)
将数据读出到vector中的一个容器data中: vector<int> data; ifstream in_data("D:\\data.txt");//open the target file if (!in_data){ cout << "input file error" << endl; return 1; } int tem...原创 2020-02-13 11:42:09 · 874 阅读 · 0 评论 -
泛型编程--c++中使用模板对任何类型的数组排序
通过使用c++中的泛型编程机制模板,实现可以对任意类型的数组里面的数据进行排序。包括我们自己定义的一个类模板的类型。首先我们对普通的类型int和float类型的数组进行排序,排序的模板:template <typename T>class sort_demo{public: static void sort(T *data, int len, bool (*compar...原创 2020-02-10 18:18:29 · 2562 阅读 · 0 评论 -
数据结构中的排序--归并(merge)排序
以下的图片来自网络资料:https://www.jianshu.com/p/33cffa1ce613归并排序的思路图示:合并两个有序数列的流程思路:C语言的实现代码:#include "stdafx.h"#include <iostream>using namespace std;void print(int data[], int n){ for...转载 2020-02-06 15:29:01 · 679 阅读 · 0 评论 -
数据结构中的排序--堆(heap)排序
堆排序的相关理论和概念可以参考网络上的资源。堆排序涉及到的主要是完全二叉树,以及堆的理解。堆在排序中的作用是在一个完全二叉树中选出待排序数据中的最大或者最小的值,并将这个值放置于根节点。每次只需要将根节点的值取出,放到已排好序的数列中。剩下的数据继续组成一个堆,再取出根节点放到已排好序的数列后面,一直到堆中的数据取完为止。这里面比较重要的就是堆的构建,涉及到左右子节点以及递归的使用。...原创 2020-02-05 16:37:32 · 339 阅读 · 0 评论 -
数据结构中的排序--选择(select)排序
选择排序和冒泡排序不管是在算法的思路上还是代码的实现上都差别不大。不同在于,选择排序可以算作是冒泡排序的一种改进,这种改进主要体现在数据的移动次数上面。冒泡排序每次比较后,如果后面的元素有和比当前的元素大或者小,就会交换位置。而选择排序,比较后是记录当前的最小值得位置,一趟比较完成后才做交换。这样的话,就减少了交换的次数。选择排序的代码实现如下:#include "stdafx.h"#...原创 2020-02-04 10:17:42 · 614 阅读 · 0 评论 -
数据结构中的排序--快速排序
快速排序可以先参考:https://baike.baidu.com/item/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/369842?fr=aladdin#include "stdafx.h"#include <iostream>using namespace std;void print(int dat...原创 2020-02-03 11:51:13 · 375 阅读 · 1 评论 -
数据结构中的排序--冒泡(bubble)排序
冒泡排序的思路:以升序为例,将数列中的第一个数拿出来,依次后后面的比较,如果比后面的数大,那么久交换,直到比较到最后一个,当这一趟比较结束后,第一个数就是最小的。然后再取第二个数,同样的依次和后面的数比较,比较结束后,这个数据就是第二小的,后面的就是依次类推。C语言中两个for循环即可实现。#include "stdafx.h"#include <iostream>...原创 2020-02-02 11:28:33 · 336 阅读 · 0 评论 -
数据结构中的排序--希尔(shell)排序
shell排序是插入排序的优化,当需要排序的数据量比较大的时候,比较有帮助。shell排序是一种分组排序,所以重点不同在于分组。如分组的大小初始值为长度的一般,每次分组的大小为之前的一般,直到为1.原始数列 5 3 7 4 3 9 6 2 10 4 3 7 1 长度13第一次分组6 5 6 1...原创 2020-02-01 22:33:05 · 375 阅读 · 0 评论 -
数据结构中的排序--插入排序(升序和降序)
插入排序的基本思路就是将待排序的数字,插入到已经排好序的数列中。如果数据都在一个数组中,那么这里面会涉及到比较的次数和数据的移动,这些都会影响到算法的效率,如果是链表,就需要考虑的是指针的指向。下面的实例代码是对一个固定的数组进行排序(升序和降序)完整的代码:#include "stdafx.h"#include <iostream>using namespace s...原创 2020-01-30 21:14:15 · 3123 阅读 · 0 评论