#include<iostream.h>
#include<stdlib.h>
#include<malloc.h>
#define len sizeof(struct szrand)
typedef struct szrand
{
int data;
szrand *next;
szrand *back;
}szrand;
void quickSort(szrand *startpos,szrand *endpos)
{
szrand *i,*j;
int ch,cch;
ch=startpos->data;
i=startpos;
j=endpos;
while(i!=j)
{
while(j->data>=ch && i!=j) j=j->back;
{cch=i->data;i->data=j->data;j->data=cch;}
while(i->data<=ch && i!=j)i=i->next;
{cch=j->data;j->data=i->data;i->data=cch;}
}
i->data=ch;
if(startpos==i)return;
quickSort(startpos,i);
if(endpos==j)return;
quickSort(j,endpos);
}
szrand *create(szrand *head,int length)
{
// head->data=rand()/100;
for(int i=1;i<=length;i++)
{
head->data=rand()/100;
head->next=(szrand *)malloc(len);
cout<<head->data<<endl;
head->next->back=head;
head=head->next;
}
// head->next=(struct szrand *)malloc(len);
// head->next->data='NULL';
head=head->back;
free(head->next);
cout<<endl;
return head;
}
void main()
{
szrand *head1,*last;
int length;
head1=(szrand *)malloc(len);
cout<<"请输入要创建的随机数组的长度:";
cin>>length;
last=create(head1,length);
quickSort(head1,last);
for(int i=1,j=1;i<=length;i++,j++)
{
cout<<head1->data;
head1=head1->next;
cout<<endl;
}
//cout<<"排序结果为:"<<endl;
return;
}