【分析】
【伪代码】
【思路图】
【运行过程】
【代码】
/*********************************
* 日期:2014-04-01
* 作者:SJF0115
* 题目:快速排序
**********************************/
#include <iostream>
#include <stdio.h>
using namespace std;
//对子数组array[p...r]就地重排
int Partition(int array[],int p,int r){
int j,temp;
//定义哨兵
int x = array[r];
//i为小于哨兵元素的最后一个元素下标
int i = p - 1;
//j为待排序元素的第一个元素
for(j = p;j < r;j++){
//跟哨兵比较
if(array[j] < x){
i++;
//交换array[i] array[j]
temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
//交换array[i+1](大于哨兵元素的第一个元素) array[r]
temp = array[i+1];
array[i+1] = array[r];
array[r] = temp;
//返回分割下标
return i + 1;
}
//快排
void QuickSort(int array[],int p,int r){
if(p >= r || array == NULL){
return;
}
int index = Partition(array,p,r);
QuickSort(array,p,index-1);
QuickSort(array,index+1,r);
}
int main()
{
int array[] = {2,8,7,1,3,5,6,4};
QuickSort(array,0,7);
for(int i = 0;i <= 7;i++){
printf("%d\n",array[i]);
}
}
分享到:
相关推荐
1.先从数列中取出一个数作为基准数 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边 3.再对左右区间重复第二步,直到各区间只有一个
本人自己写的一些排序算法,这是系列1归并排序算法实现,
常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。 搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据...
NULL 博文链接:https://wojiaolongyinong.iteye.com/blog/1868188
希尔、归并、快速排序算法也可归为同一类,它们的共同点都是建立在分治思想之上。把大问题分拆成小问题,解决所有小问题后,再合并每一个小问题的结果,最终得到对原始问题的解答。 Tips: 通俗而言:化整为零,...
主要介绍了JavaScript算法系列之快速排序(Quicksort)算法实例详解的相关资料,需要的朋友可以参考下
归并排序,在排序算法中还有一种算法用到了递归,那就是快速排序,快速排序也是一种利用了分而治之策略的算法,它由C.A.R发明,它依据中心元素的值,利用一系列递归调用将数据表划分成越来越小的子表。在每一步调用...
可实现两个计算机间通信 并实现快速排序算法 2分钟内可排1000万个数 数是随机产生的
所谓排序,就是把数据群体按个体数据的特征按从大到小或从小到大的顺序存放。 排序在应用开发中很常见,如对商品按价格、人气、购买数量等排序,便于使用者快速找到数据。
常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。 搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据...
常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。 搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据...
常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。 搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据...
常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。 搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据...
常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。 搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据...
虽然本文提供了一系列实用的快速排序教程,但真正的掌握还需要结合实际操作和项目经验。建议读者在准备面试的同时,通过实际项目或模拟环境来应用这些快速排序概念,以便更深刻地理解和掌握它们。此外,随着技术的...
九、图像特征提取与匹配之SIFT算法 (SIFT算法系列五篇文章) 九(续)、sift算法的编译与实现 九(再续)、教你一步一步用c语言实现sift算法、上 九(再续)、教你一步一步用c语言实现sift算法、下 九(三续):...
5-10 快速排序实现1 (1) 5-10 快速排序实现1 5-11 快速排序实现2 5-12 归并排序 5-13 归并排序 代码执行流程 5-14 归并排序时间复杂度及排序算法复杂度对比 5-15 二分查找 5-16 二分查找时间复杂度 六、树和...
常见的排序算法包括冒泡排序、插入排序、选择排序、快速排序、归并排序等。 搜索算法:搜索算法用于在数据集中查找特定元素的算法。常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据...
算法分类:排序算法(如冒泡排序、快速排序、归并排序),查找算法(如顺序查找、二分查找、哈希查找),图论算法(如Dijkstra最短路径算法、Floyd-Warshall算法、Prim最小生成树算法),动态规划,贪心算法,回溯法...