
排序
love music.
中山大学计算机博士在读,曾就职于腾讯等公司,目前从事AI多模态大模型研究。
展开
-
PAT甲级 1080 Graduate Admission (30 分)排序
1080 Graduate Admission (30 分)It is said that in 2011, there are about 100 graduate schools ready to proceed over 40,000 applications in Zhejiang Province. It would help a lot if you could write a p...原创 2018-10-22 22:31:05 · 200 阅读 · 0 评论 -
C++ 快速排序
快排分为两种,一种是双边循环法,另一种是单边循环法。注意:快排里的i与j下标比较时都要使用i < j,否则算法会错误!!!(一)双边循环法:#include<iostream>using namespace std;void QuickSort(int arr[],int l,int r);void show(int arr[],int n);int ...原创 2018-06-21 22:37:58 · 275 阅读 · 0 评论 -
C++ 堆排
堆排的一开始要先建堆,这里是按从小到大排序,建立的是最大堆。注意这里的堆排要求数组的下标是从一开始,方便操作。堆排序的两个步骤:(1)从非叶子结点开始依次“下沉”,构建出最大堆。(2)依次将堆顶元素删除,此时新交换的根结点要”下沉".#include <iostream>using namespace std;void shift(int arr[],in...原创 2018-10-23 19:21:53 · 399 阅读 · 0 评论 -
C++ 归并排序
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。复杂度分析:归并排序的效率是比较高的,设数列长为N,将数列分开成小数列一共要logN步,每步都是一个合并有序数列的过程,时间复杂度可以记为O(N),故一共为O(N*logN)。因为归并排序每次都是在相邻的数据中进行操作,所以归并排序在O(N*logN)的几种排序方法...原创 2018-07-03 11:27:49 · 223 阅读 · 0 评论 -
直接插入排序
时间复杂度:O(n的平方) 空间复杂度:O(1)#include <iostream>#include <vector>using namespace std;vector<int> arr,temp;void insertSort(vector<int> &arr,int n){ int i,j; fo...原创 2018-11-04 10:17:15 · 110 阅读 · 0 评论 -
PAT甲级 1089 Insert or Merge (25 分)排序模拟(直插排序与非递归归并排序)
1089 Insert or Merge (25 分)According to Wikipedia:Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one...原创 2018-11-05 15:26:58 · 239 阅读 · 0 评论 -
剑指Offer 最小的K个数
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。方法一:基于快排的Partition,时间复杂度O(n)解析:基于数组的第k个数字来调整,则使得比第k个数字小的所有数字都位于数组的左边,比第个数字大的所有数字都位于数组的右边。这样调整之后,位于数组中左边的k个数字就是最小的k个数字(这k个数字不一定是排序的)....原创 2019-01-30 15:07:06 · 187 阅读 · 0 评论 -
计数排序与桶排序
1.计数排序算法过程根据待排序集合中最大元素和最小元素的差值范围,申请额外空间; 遍历待排序集合,将每一个元素出现的次数记录到元素值对应的额外空间内; 对额外空间内数据进行计算,得出每一个元素的正确位置; 将待排序集合每一个元素移动到计算得出的正确位置上。#include <bits/stdc++.h>using namespace std; void Cou...原创 2019-09-03 14:13:56 · 253 阅读 · 0 评论