经典排序算法
-初心不负-
这个作者很懒,什么都没留下…
展开
-
快速排序
#include #include #include void quicksort(int a[],int l,int r); int main() { int n; srand((unsigned)time(NULL)); printf("你想输入的数组的大小:"); scanf("%d",&n); int a[n],i;原创 2017-02-14 13:10:37 · 322 阅读 · 0 评论 -
不同版本的快速排序
之前也写了相应的快速排序的相应的代码,但是只是最基本的快排的算法,本文介绍的两种算法均是优化后的快排算法。 版本一: #include using namespace std; void quick_sort(int a[],int p,int q); int partition(int a[],int p,int q); int main() { int n;原创 2017-09-15 20:50:26 · 481 阅读 · 0 评论 -
随机化快速排序
之前写过快速排序的代码,但是快速排序对已经排好序的数组再进行排序的话,就会遇到最差的情况,算法的复杂的也会达到n^2级别,所以对快速排序进行相应的优化,每次都随机的选择主元进行排序,这样能够最大的避免最差情况的发生,对于数据比较大的情况,程序运行的时间也有相应的提高,下面附上随机化快排的相应的代码(附有注释)。#include<bits/stdc++.h> using namespace std;原创 2017-09-14 20:01:17 · 637 阅读 · 0 评论 -
P1908 逆序对
原题目地址:https://www.luogu.org/problem/show?pid=1908 题目描述猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且i#include<bits/stdc++原创 2017-08-04 22:29:24 · 250 阅读 · 0 评论 -
P1177 【模板】快速排序
题目原地址:https://www.luogu.org/problem/show?pid=1177 题目描述利用快速排序算法将读入的N个数从小到大排序后输出。快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。)输入输出格式输入格式: 输入文件原创 2017-08-01 17:53:54 · 714 阅读 · 0 评论 -
常用的排序
冒泡排序:冒泡排序是学习c语言最先学的排序,是比较简单的排序算法之一,算法的时间复杂度为O(n^2),下面附上代码 void bubbleSort(int a[],int n)//冒泡排序 { int i,j,t; for(i=0;i<n-1;i++) for(j=0;j<n-i-1;j++) if(a[j]>a[j+1])原创 2017-07-30 17:10:27 · 238 阅读 · 0 评论 -
常用的排序算法
冒泡排序:冒泡排序是学习c语言最先学的排序,是比较简单的排序算法之一,算法的时间复杂度为O(n^2),下面附上代码void bubbleSort(int a[],int n)//冒泡排序 { int i,j,t; for(i=0;i<n-1;i++) for(j=0;j<n-i-1;j++) if(a[j]>a[j+1])原创 2017-11-20 19:44:11 · 232 阅读 · 0 评论