游客已登陆 (0)未知
笔行证 257310
昵称 kuan 
笔贝 Score1
加为好友 发送短信
<< << 2009 一月 >> >>
123
45678910
11121314151617
18192021222324
25262728293031

访问计数:27081
本文:284 今天:1 本月 284

本地音乐播放器



 
       快速排序
2007-04-12 晴



#include<iostream.h>

void QuickSort(float array[], int s, int t)//时间O(nlog2n) 空间(log2n)
{
int i=s,j=t+1;
float temp=array[s],temp2;//备份基元素

do
{
do{i++;}while(array < temp);
do{j--;}while(array[j] > temp);

if(i<j)
{
temp2=array;
array=array[j];
array[j]=temp2;
}

}while(i<j);

array[s]=array[j];//基准元素array[s]与array[j]交换,得到前后两个子区间
array[j]=temp;

if(s<j-1)QuickSort(array,s,j-1);//区间元素大于一个,递归
if(j+1<t)QuickSort(array,j+1,t);
}
void main()
{
int i,n;
cout<<"你输入几个数进行排序:";
cin>>n;
float *array=new float[n+2];
cout<<"请输入"<<n<<"个数:"; //36 25 48 12 65 43 20 58
for(i=0; i<n; i++)
cin>>array;
array[n]=32768;

QuickSort(array,0,n-1);

cout<<"排好序的数:";
for(i=0; i<n; i++)
cout<<array<<' ';
cout<<endl;
delete []array;
array=NULL;
}.
# posted by kuan @ 2007-04-12 12:52:10 评论(0)
 








 
笔 名:
*
评 论:
最多1000字。当前字数:0
*
联系方式: