33,311
社区成员
发帖
与我相关
我的任务
分享
void paixu( Node* &L)
{
Node *p, *q;
xxx tmp;
p = q = L;
for (p = L; p; p = p->next) {
for (q=L; q->next; q->next) {
if (q->number > q->next->data) {
tmp = q->number;
q->number = q->next->number;
q->next->number = tmp;
}
}
}
/*
Node *temp;
int i;
int j;
Node * p;
Node * p1;
if (temp1 == 0)return;
for (i = 0; i < temp1-1 ; i++)
{
for (j = 0; j < temp1 - i-1; j++)
{
p = L;
p1 = L->next;
if (p->number > p1->number)
{
temp = p;
p = p1;
p1= temp;
temp=temp->next;
}
L=L->next;
}
}
*/
}
void paixu( Node* &L)
{
Node *p, *q;
#if 0 //bubble sort
xxx tmp;
p = q = L;
for (p = L; p; p = p->next) {
for (q=L; q->next; q->next) {
if (q->number > q->next->data) {
tmp = q->number;
q->number = q->next->number;
q->next->number = tmp;
}
}
}
#else //insert sort
Node *r, *pre;
p = L->next;
L->next = NULL;
while (p) {
q = p->next;
r = pre = L;
while (r) {
if (r->number > p->number) {
if (r == L) {
p->next = L;
L = p;
} else {
pre->next = p;
p->next = r;
}
break;
}
pre = r;
r = r->next;
}
if (r == NULL) {
p->next = NULL;
pre->next = p;
}
p = q;
}
#endif
/*
Node *temp;
int i;
int j;
Node * p;
Node * p1;
if (temp1 == 0)return;
for (i = 0; i < temp1-1 ; i++)
{
for (j = 0; j < temp1 - i-1; j++)
{
p = L;
p1 = L->next;
if (p->number > p1->number)
{
temp = p;
p = p1;
p1= temp;
temp=temp->next;
}
L=L->next;
}
}
*/
}
void paixu(Node **L)//,int ListLen) //排序,从小到大
{
int i,j,ListLen=0;
Node * p=*L,*pre=NULL,* p1=NULL;
while(p){ListLen++; p=p->next;}
if(ListLen == 0) return;
for (i = 0; i < ListLen ; i++)
{
p=pre=*L;
for (j = 0; j < ListLen-i-1; j++)
{
p1 = p->next;
if(p->data > p1->data)
{
if(p == *L){
p->next = p1->next;
p1->next = p;
*L= pre = p1;
}else{
pre->next = p1;
p->next = p1->next;
p1->next =p;
pre = p1;
}
}else{
pre = p;
p=p->next;
}
}
}
}
void paixu(Node **L)//,int ListLen) //排序,从小到大
{
int i,j,ListLen=0;
Node * p=*L,*pre=NULL,* p1=NULL;
while(p){ListLen++; p=p->next;}
if(ListLen == 0) return;
for (i = 0; i < ListLen ; i++)
{
p=pre=*L;
for (j = 0; j < ListLen-i-1; j++)
{
p1 = p->next;
if(p->data > p1->data)
{
if(p == *L){
p->next = p1->next;
p1->next = p;
*L= pre = p1;
}else{
pre->next = p1;
p->next = p1->next;
p1->next =p;
pre = p1;
}
}else{
pre = p;
p=p->next;
}
}
}
}
[/quote]void paixu(Node **L,int ListLen)
{
//Node *temp;
int i, j;
Node * p,*pre=NULL,* p1=NULL;
if(ListLen == 0) return; //if (temp1 == 0)return;
for (i = 0; i < ListLen ; i++) //for (i = 0; i < temp1-1 ; i++)
{
p=pre=*L;
for (j = 0; j < ListLen-i-1; j++)//for (j = 0; j < temp1-i-1; j++)
{
p1 = p->next;
if(p->data > p1->data)
{
if(p == *L){
p->next = p1->next;
p1->next = p;
*L= pre = p1;
}else{
pre->next = p1;
p->next = p1->next;
p1->next =p;
pre = p1;
}
}else{
pre = p;
p=p->next;
}
}
}
}
//函数调用:
paixu(&L,10);