快速排序
来源:互联网 发布:美国程序员的工资 编辑:程序博客网 时间:2024/06/12 00:42
//
// main.cpp
// Sorting
//
// Created by yanzhengqing on 12-12-6.
// Copyright (c) 2012年 yanzhengqing. All rights reserved.
#include <iostream>
using namespace std;
int input_array(intconst *p)
{
printf("please input the array numbers......\n");
for (uint i =0; i <10;i++)
{
scanf("%d",p++);
}
return0;
}
int output_array(intconst *p)
{
for (uint i =0; i <10;i++)
{
printf("%d\t",*(p++) );
}
return0;
}
/**********************************************************************************************/
//快速排序
//数据范例
//21 32 43 22 56 87 65 49 76 10
//第一趟 10214322 56 87654976 32
int Quicksort_swap(int *pleft ,int *pright)
{
int temp =0;
temp = *pleft;
*pleft = *pright;
*pright = temp;
return0;
}
int Quick_sort(int *a,int begin ,int end)
{
int compare = a[begin],left = begin,right = end;
if (left >= right)
{
return0;
}
while (left < right)//此下循环为一趟排序,每一趟排序总有一个元素在最终确定位置
{
while((left < right) && a[right] >= compare)
{
right --;
}
swap(a[left],a[right]);
while ((left < right) && (a[left] < compare))
{
left ++;
}
swap(a[right],a[left]);
}
//这里主要用到了栈,分别对数组进行递归排序,稍微理解一下想想即可。
Quick_sort(a,begin,right-1);
Quick_sort(a,right+1,end);
return0;
}
int main(int argc,constchar * argv[])
{
int array[10] = {0};
input_array(array);
Quick_sort(array,0,((sizeof(array)/sizeof(int))-1));
output_array(array)
return0;
}
/***************************************************************************************/
示例:
输入
21
32
43
22
56
87
65
49
76
10
输出
10212232 43 49566576 87
- 快速排序
- 快速排序
- 快速排序
- 快速排序!
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 快速排序
- 墙漆工程
- coco2dx TrasitionsTest
- CoreData-1
- 怎么对ContentProvider中的数据变化进行监控
- Android 安全机制
- 快速排序
- 记事本的状态栏和自动换行
- IOS 如何选择delegate、notification、KVO?
- ASP.NET的Cookie跨域
- HTTP协议详解
- 子页面与父页面互传值
- Windows访问Linux——之SSH
- logcat用法
- webservice(二)有关dtd的基础知识 和xmlspy2012的汉化版和破解补丁