2(2).选择排序_冒泡(双向循环链表)
2013-07-03 00:00
477 查看
#include<cstdio>
#include<cstring>
typedef struct pan
{
int data;
struct pan *next,*prior;
} Panda;
void Input(Panda *head,int N)
{
Panda *p=head;
while(N--)
{
Panda *pnew=new Panda;
scanf("%d",&pnew->data);
p->next=pnew;
pnew->prior=p;
pnew->next=head;
head->prior=pnew;
p=pnew;
}
return ;
}
void Bubble(Panda *head,int N)
{
for(int i=0; i<N; i++)
{
bool flag=1;
Panda *p=head->next;
for(int j=0; i+j<N-1&&p->next!=head; p=p->next)
{
if(p->data>p->next->data)
{
int cub=p->data;
p->data=p->next->data;
p->next->data=cub;
flag=0;
}
}
if(flag==1) break;
}
return ;
}
void Output(Panda *head)
{
Panda *p=head->next;
while(p!=head)
{
printf("%d\n",p->data);
p=p->next;
}
return ;
}
int main()
{
Panda *head=new Panda;
head->next=head->prior=head;
int N=10;
Input(head,N);
Bubble(head,N);
Output(head);
return 0;
}
/**************************************************************
Language: C++
Result: Accepted
Time:0 ms
Memory:1028 kb
****************************************************************/
#include<cstring>
typedef struct pan
{
int data;
struct pan *next,*prior;
} Panda;
void Input(Panda *head,int N)
{
Panda *p=head;
while(N--)
{
Panda *pnew=new Panda;
scanf("%d",&pnew->data);
p->next=pnew;
pnew->prior=p;
pnew->next=head;
head->prior=pnew;
p=pnew;
}
return ;
}
void Bubble(Panda *head,int N)
{
for(int i=0; i<N; i++)
{
bool flag=1;
Panda *p=head->next;
for(int j=0; i+j<N-1&&p->next!=head; p=p->next)
{
if(p->data>p->next->data)
{
int cub=p->data;
p->data=p->next->data;
p->next->data=cub;
flag=0;
}
}
if(flag==1) break;
}
return ;
}
void Output(Panda *head)
{
Panda *p=head->next;
while(p!=head)
{
printf("%d\n",p->data);
p=p->next;
}
return ;
}
int main()
{
Panda *head=new Panda;
head->next=head->prior=head;
int N=10;
Input(head,N);
Bubble(head,N);
Output(head);
return 0;
}
/**************************************************************
Language: C++
Result: Accepted
Time:0 ms
Memory:1028 kb
****************************************************************/
相关文章推荐
- 2(4).选择排序_快排(双向循环链表)
- 冒泡、插入、选择、快速排序
- 冒泡排序,选择排序,希尔排序
- 双向循环链表的选择排序
- JAVA中常用的排序之冒泡、选择、插入
- C语言排序实例(选择、冒泡、插入、折半、快速)
- 排序元素排序算法总结(一)——冒泡、插入、希尔与选择排序
- 黑马程序员-排序(冒泡,选择,快速排序)
- 算法积累_java_插入,选择,冒泡,快速排序
- java:三种经典大排序汇总,冒泡,插入,选择
- 随手记录--java排序(1)冒泡、选择、希尔、归并
- 史上最简单!冒泡、选择排序的Python实现及算法优化详解
- Java四种排序:冒泡,选择,插入,二分(折半插入)
- C++实现各种基础排序(冒泡、选择、快排、插入、堆排、希尔、归并)
- Python实现冒泡,插入,选择排序简单实例
- 几种排序方法的比较(选择、冒泡、归并、快排)
- 冒泡,简单选择,直接插入排序(Java版)
- 排序之选择、冒泡和插入
- C语言学习历程(十七)数据结构与排序(冒泡、选择、希尔排序)算法
- 插入,冒泡,选择,快速排序,二分查找