博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础算法之排序--快速排序
阅读量:6962 次
发布时间:2019-06-27

本文共 3034 字,大约阅读时间需要 10 分钟。

1         /**************************************************************************************   2         * Function     : 快速排序   3         * Create Date  : 2014/04/21   4         * Author       : NTSK13   5         * Email        : beijiwei@qq.com   6         * Copyright    : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。   7         *                任何单位和个人不经本人允许不得用于商业用途   8         * Version      : V0.1                       9         ***************************************************************************************                      10         基础算法之排序--快速排序   3 1 7 5 8 4 9 0 2 6  11           12         步骤:  13         1)选取base 为最左边的3,最小序号为0(left=0),最大序号为9(right=9)  14           15         2)从最右边开始,向左查找到第一个小于base的数字,序列号为j,放在序号为0的位置,也就是取得base值的位置.  16         3)从最左边开始,向右查找到第一个大于base的数字序列号为i,放在上次查找小于base的位置,序列号j  17           18         4)循环执行  步骤2) 和 步骤  3) ,直到 i >= j. 此时序列号i的左侧全是小于base的数,  序列号i的右侧全是大于base的数,  19           20         5)把base值放在序列号为i的位置  21           22         6)分别递归调用left到 i-1, i+1到 right 进行快排  23           24         注意  left小于right 是可以进行递归的条件.  25           26         **************************************************************************************/     27         #include
28 29 #define MY_FUNC 1 30 #if MY_FUNC 31 32 #define M 10 33 int data[M]={
0}; 34 35 void quick_sort(int array[],int left,int right); 36 37 // The first method: 38 int main() 39 { 40 int i=0; 41 42 freopen("input.txt","r",stdin); 43 44 for(i=0;i
base)//right --> left 从数组最右侧 开始往左找比base小的数; 如果找到的话,放在最左边 80 j--; 81 array[i]=array[j]; 82 83 //注意下边while循环里 i
right 从数组最左侧 开始往 找比base大的数; 如果找到的话,放在最右边 85 i++; 86 array[j]=array[i]; 87 } 88 array[i]=base; 89 90 quick_sort(array,left,i-1); 91 quick_sort(array,i+1,right); 92 } 93 94 } 95 96 /********************************************my function end**************************************************/ 97 #else 98 99 #define M 10 100 int data[M]={
0}; 101 102 int division(int a[],int left,int right); 103 void quick_sort(int a[],int left,int right); 104 105 // The second method: 106 int main() 107 { 108 int i=0; 109 110 freopen("input.txt","r",stdin); 111 112 for(i=0;i
base) 144 --right; 145 a[left]=a[right]; 146 while(left

 

 

转载于:https://www.cnblogs.com/ntsk13/p/3701300.html

你可能感兴趣的文章
ios学习笔记(二)第一个应用程序--Hello World
查看>>
项目优化经验分享(七)敏捷开发
查看>>
如何解决adb devices 端口被占用的问题zz
查看>>
Maven学习总结(四)——Maven核心概念——转载
查看>>
实践一些js中的prototype, __proto__, constructor
查看>>
怎么用CIFilter给图片加上各种各样的滤镜_2
查看>>
android:关于主工程和library project
查看>>
CodeForces 2A Winner
查看>>
Window环境配置Mongodb
查看>>
Project facet Java version 1.8 is not supported解决记录
查看>>
制作和unity调用动态链接库dll文件
查看>>
N-Gram
查看>>
操作可能会破坏运行时稳定性的解决办法
查看>>
exsi6.0远程修改密码
查看>>
Header和Cookie相关内容
查看>>
20个可能你不知道Linux网路工具
查看>>
Android 关于listView 显示不全的问题
查看>>
构造函数创建私有变量(防继承)
查看>>
scrum 开发方式学习笔记
查看>>
Terraform使用案例
查看>>