排序
东篱_
Never forget why you started,and your mission can be accomplished.
展开
-
C++ 快排思想 最小的k个数、最大的k个数
C++ 快排思想 最小的k个数、最大的k个数 1、思路快速排序的思路中,有一个分块函数partition.partition函数,以升序数组a[]为例,它的作用:以a[l]为基准,将“<a[l]”的数据全部存放在 a[l]的左边,“>a[l]”的数据全部存放在 a[l]的右边。返回a[l]最终所在数组的正确索引位置。采用双路快排,从数组的两端开始,向中间推进。故:最小...原创 2018-08-28 16:51:32 · 1235 阅读 · 0 评论 -
C++ 模板化的student类对象的直接插入排序, 运算符重载,模板,两种模板化的交换数据函数
C++ 模板化的student类对象的直接插入排序, >、<、<<运算符重载,模板,两种模板化的交换数据函数1、student类对象(1)基本成员变量和成员函数定义:class student{private: string name; double score; int *index;public: student() :index(NU原创 2018-11-28 17:49:51 · 524 阅读 · 0 评论 -
堆排序、堆排序优化、索引堆排序
堆排序、堆排序优化、索引堆排序(稳定排序) 1、堆: 所有元素 都从索引0开始父亲结点索引:i; 左孩子结点索引: 2*i+1; 右孩子结点索引: 2*i+2; 左后一个非叶子结点索引:(n-1)/2; 用于构建堆,从最后一个非叶子结点索引开始调整堆,直至到达索引为0的首个父亲结点2、堆排序(升序为例): 共两步: step1、构建堆 step2、原地堆排序step1...原创 2018-09-01 15:20:37 · 1173 阅读 · 0 评论 -
归并排序 逆序对的实现
归并排序 逆序对的实现#include<iostream>using namespace std;long long mergeSort(int a[], int n);long long _mergeSort(int a[], int l, int r);long long merge(int a[], int l, int mid, int r);void t...原创 2018-08-23 22:04:05 · 318 阅读 · 0 评论 -
单链表的直接插入排序
单链表的直接插入排序 1、数组的直接插入排序void InsertSort(int *a, int len){ for (int i = 1; i < len; ++i) { for (int j = 0; j < i; ++j) { if (a[j]>a[i]) { ...原创 2018-05-21 22:07:36 · 4510 阅读 · 0 评论