quickSort算法导论版实现

时间:2023-01-23 13:16:50

本文主要实践一下算法导论上的快排算法,活动活动。

伪代码图来源于 http://www.cnblogs.com/dongkuo/p/4827281.html

quickSort算法导论版实现

 // imp the quicksort algorithm 2016.12.21

 #include <iostream>
#include <fstream>
#include <vector> using namespace std; int Partion(vector<int> & vec, int b, int e)
{
int x = vec[e];
int i = b - ; for(int j = b;j < e;j++)
if (vec[j] < x)
{
i += ;
swap(vec[i], vec[j]);
} swap(vec[i + ], vec[e]); return i + ;
} void quickSort(vector<int> & vec,int b,int e)
{
int q = ;
if (b < e)
{
q = Partion(vec, b, e);
quickSort(vec, b, q - );
quickSort(vec, q + , e);
}
} int main()
{
ifstream fin("rawData.txt");
ofstream fout("sortedData.txt",ios::out); int temp;
vector<int> vec; while (fin >> temp) {
vec.push_back(temp);
} fout << "Data before sort :" << endl;
for each (auto & var in vec)
{
fout << var << " ";
}
fout << endl; quickSort(vec,,vec.size() - ); fout << "Data after sort :" << endl;
for each (auto & var in vec)
{
// cout << var << " ";
fout << var << " ";
}
fout << endl; fin.close();
fout.close(); return ;
}

原始数据位于rawData.txt中如下:

3 2 10 8 6 7 1

运行结果保存在sortedData.txt中如下:

Data before sort :
3 2 10 8 6 7 1
Data after sort :
1 2 3 6 7 8 10

quickSort算法导论版实现的更多相关文章

  1. MIT算法导论——第四讲&period;Quicksort

    本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记.所有内容均来自MIT公开课Introduction to Algorithms中Charles E. ...

  2. &lbrack;算法导论&rsqb;quicksort algorithm &commat; Python

    算法导论上面快速排序的实现. 代码: def partition(array, left, right): i = left-1 for j in range(left, right): if arr ...

  3. 《算法导论》第二章demo代码实现(Java版)

    <算法导论>第二章demo代码实现(Java版) 前言 表示晚上心里有些不宁静,所以就写一篇博客,来缓缓.囧 拜读<算法导论>这样的神作,当然要做一些练习啦.除了练习题与思考题 ...

  4. 快排算法Java版-每次以最左边的值为基准值手写QuickSort

    如题 手写一份快排算法. 注意, 两边双向找值的时候, 先从最右边起找严格小于基准值的值,再从最左边查找严格大于基准base的值; 并且先右后左的顺序不能反!!这个bug改了好久,233~ https ...

  5. 《算法导论》 — Chapter 7 高速排序

    序 高速排序(QuickSort)也是一种排序算法,对包括n个数组的输入数组.最坏情况执行时间为O(n^2). 尽管这个最坏情况执行时间比較差.可是高速排序一般是用于排序的最佳有用选择.这是由于其平均 ...

  6. 《算法导论》 — Chapter 7 快速排序

    序 快速排序(QuickSort)也是一种排序算法,对包含n个数组的输入数组,最坏情况运行时间为O(n^2).虽然这个最坏情况运行时间比较差,但是快速排序通常是用于排序的最佳实用选择,这是因为其平均性 ...

  7. B树——算法导论&lpar;25&rpar;

    B树 1. 简介 在之前我们学习了红黑树,今天再学习一种树--B树.它与红黑树有许多类似的地方,比如都是平衡搜索树,但它们在功能和结构上却有较大的差别. 从功能上看,B树是为磁盘或其他存储设备设计的, ...

  8. &lbrack;算法导论&rsqb;二叉查找树的实现 &commat; Python

    <算法导论>第三版的BST(二叉查找树)的实现: class Tree: def __init__(self): self.root = None # Definition for a b ...

  9. &quot&semi;《算法导论》之&OpenCurlyQuote;排序’&quot&semi;:线性时间排序

    本文参考自一博文与<算法导论>. <算法导论>之前介绍了合并排序.堆排序和快速排序的特点及运行时间.合并排序和堆排序在最坏情况下达到O(nlgn),而快速排序最坏情况下达到O( ...

随机推荐

  1. C&num;如何实现下载文件保存到本地上面去

    public void btnTemplate_Click(object sender, EventArgs e) { string strResult = string.Empty; string ...

  2. sqlserver检测死锁&semi;杀死锁和进程&semi;查看锁信息

    http://blog.sina.com.cn/s/blog_9dcdd2020101nf4v.html sqlserver检测死锁;杀死锁和进程;查看锁信息 ( ::)转载▼ 标签: sql 检测死 ...

  3. HashMap使用

    /* * 测试HashMap的应用,判断 */ import java.util.HashMap; public class HuaWeiTest { private static final Int ...

  4. 构建ASP&period;NET MVC4&plus;EF5&plus;EasyUI&plus;Unity2&period;x注入的后台管理系统(26)-权限管理系统-分配角色给用户

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(26)-权限管理系统-分配角色给用户 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x ...

  5. js 获取input file路径改变图像地址

    html代码 <img id="newImage" alt="100x100" src="__PUBLIC__/img/1.jpg" ...

  6. 初识java这个小姑娘(三)

    说烂了的面向对象 我要说的面向对象,其实是一个我自己都觉的有点恶心的东西. 它是java语言入门如此初级的一个概念.作为一个老鸟,你可以吐口水给我,我可以把它们擦干,但作为总结还得说一说. 因为对于一 ...

  7. js事件、事件流以及target、currentTarget、this那些事

    你是如此简单我却将你给遗忘   前面面试被问到js的事件机制  target.currentTarget.碰巧今天有时间来拔一拔,顺便记下.

  8. Alpha冲刺! Day3 - 砍柴

    Alpha冲刺! Day3 - 砍柴 今日已完成 晨瑶:补充安卓技能树: review接口文档:看了点七牛云安卓API. 昭锡:没有团队项目相关贡献. 永盛: API 文档基本完成:根据 API 文档 ...

  9. 写写我的硕士三年【zz】

    昨天我们组的10bit-40M ADC测出来了,自己终于能松口气,可以无牵无挂的毕业了.晚上老板bg全组毕业生,喝了很多,我对老板说:"这3年在组里,我是把它当作事业来做的!"是的 ...

  10. VS一些快捷键

    参考网址:http://www.open-open.com/lib/view/open1412261028453.html (这里省去了很多大家闭上眼都会操作的什么Ctrl+S 等等操作 给出的大多是 ...