⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 双向冒泡排序.cpp

📁 数据结构学习用到的一些程序!!里面有二叉树相关的几个
💻 CPP
字号:
#include<stdio.h>
#define max 20 //最多记录个数
typedef int elemtype;
typedef elemtype recs[max];
void bibubble(recs r,int n)
{
     int flag=1; //继续遍历时flag置1,已排好序不需遍历时为0
     int i=0, j;
     elemtype temp;
     while(flag==1)
	 {
          flag=0;
          for(j=i+1;j<n-1;j++) //正向遍历找最大值
             if(r[j]>r[j+1])
			 {
                flag=1; //能交换时,说明未排好序,需继续
                temp=r[j];
                r[j]=r[j+1];
                r[j+1]=temp;
			 }
          for(j=n-i-1;j>=i+1;j--) //反向遍历
             if(r[j]>r[j-1])
			 {
                 flag=1; //能交换时,说明未排好序,需继续
                 temp=r[j];
                 r[j]=r[j-1];
                 r[j-1]=temp;
			 }
           i++;
	 }
}

void main()
{
     recs A={2,5,3,4,6,9,8,7,1,10};
     int n=10, i;
     printf("双向冒泡排序\n排序前:\n");
     for(i=0;i<n;i++)
     printf("%d\n",A[i]);
     printf("排序后:\n");
     bibubble(A,n);
     for(i=0;i<n;i++)
     printf("%d\n",A[i]);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -