DS-SDUT-数据结构实验之排序二:交换排序
2015-12-26 19:32
411 查看
#include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <algorithm> using namespace std; int n; long long ls[100010]; long long s[100010]; int num1, num2; void mao(long long a[]) { int i, j; for( i = 0; i < n-1; i++) { for(j = 0; j < n-i-1; j++) { if(a[j] > a[j+1]) { long long t = a[j]; a[j] = a[j+1]; a[j+1] = t; num1++; } } } } void qsort(int l, int r, long long a[]) { long long key = a[l]; int i = l, j = r; if(l >= r) return ; while(i < j) { while(i < j&& key<=a[j]) j--; if(i != j) { a[i] = a[j]; num2++; } while(i < j&& key >= a[i]) i++; if(i!=j) { a[j] = a[i]; num2++; } } a[i] = key; qsort(l,i-1,a); qsort(i+1,r,a); } int main() { while(~scanf("%d",&n)) { for(int i = 0; i < n; i++) { scanf("%lld",&ls[i]); s[i] = ls[i]; } num1 = num2 = 0; mao(ls); qsort(0,n-1,s); printf("%d %d\n",num1,num2); } return 0; }
相关文章推荐
- 算法设计题2.19~2.20-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版
- [DT] 数据结构术语中英文对照
- 算法设计题2.16~2.18-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版
- java集合和数据结构深入解读
- 算法设计题2.15-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题2.14-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题2.13-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题2.12-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题2.11-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版
- 算法设计题2.10-线性表-第2章-《数据结构习题集》-严蔚敏吴伟民版
- 线性表-第2章-《数据结构习题集》答案解析-严蔚敏吴伟民版
- 数据结构与算法概述
- 数据结构(1)-栈的特性以及简单应用
- 二叉树的定义与遍历
- Android笔记 - Binder之数据结构(二)
- 数据结构中桟的定义
- 二叉树转换为双向链表,以及二叉树相关操作---纪念考研的时光
- 数据结构学习 并查集讲解(思路,时间复杂度)
- 数据结构与算法——提供一个单词,在字典中找到它的兄弟
- 2015年大二上-数据结构-树和二叉树-2-(2)二叉树的非递归遍历