****************普通冒泡排序法BEGIN********************
void main(){
int num[]={8,6,7,5,3,4,2,1,0,9},state=1;
for(int i=0;(i<=9)&&state;i++){
state=0;
for(int j=0;j<=9-i;j++)
if(num[j]>num[j+1]){
int temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
state=1;
}
}
for(i=0;i<=9;i++)
cout<<num[i]<<" ";
}
****************普通冒泡排序法OVER********************
****************冒泡排序法(链表实现)BEGIN***************
typedef struct Node{
int v;
struct Node *next;
}Node;
void Insert(Node *L,int e){
Node *temp=new Node;
temp->v=e;
temp->next=NULL;
L->next=temp;
}
void main(){
Node *H=new Node,*L=new Node,*p0=new Node,*p1=new Node;
L=H;
Insert(H,8);
H=H->next;
Insert(H,6);
H=H->next;
Insert(H,7);
H=H->next;
Insert(H,5);
H=H->next;
Insert(H,3);
H=H->next;
Insert(H,4);
H=H->next;
Insert(H,2);
H=H->next;
Insert(H,1);
H=H->next;
Insert(H,0);
H=H->next;
Insert(H,9);
H=L;
L=L->next;
/*while(L!=NULL){
printf("%d ",L->v);
L=L->next;
}//构造整个链表
//用链表实现出泡法 */
int state=1,Max=100; // 将MAX的值设为100,利于第一轮循环
for(p0=H->next;p0!=NULL&&state;p0=p0->next){
state=0;
for(p1=H->next;p1->next!=NULL&&p1->v!=Max;p1=p1->next)
if((p1->v)>(p1->next->v)){
int a;
a=p1->v;
p1->v=p1->next->v;
p1->next->v=a;
state=1;
}
Max=0;
for(p1=H->next;p1->next!=NULL&&p1->v!=Max;p1=p1->next) //此循环求出这一次范围中的最大值赋给MAX
if(p1->v>Max)
Max=p1->v;
}
while(L!=NULL){
printf("%d ",L->v);
L=L->next;
}
}
****************冒泡排序法(链表实现)OVER***************
哈哈,今天又学到了一点点哦,开心ING