夜深人静ING

流浪的人儿....

冒泡排序

****************普通冒泡排序法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

阅读更多
文章标签: insert struct null
想对作者说点什么? 我来说一句

冒泡排序C# 冒泡排序

2011年04月20日 15KB 下载

C排序—— 一个简约的方法

2009年02月20日 404B 下载

C# ,冒泡排序,JAVA

2008年11月13日 1KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭