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

📄 bubbles.cpp

📁 非常全的排序算法c实现
💻 CPP
字号:
/*算法思想简单描述:
 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上
 而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较
 小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要
 求相反时,就将它们互换。
 下面是一种改进的冒泡算法,它记录了每一遍扫描后最后下沉数的
 位置k,这样可以减少外层循环扫描的次数.*/
#include<iostream.h>//冒泡排序
#define MAX 4
void bubble_sort(int a[],int n);//数组名称,数组中元素个数
int main()
{ 
   int *p, i,n,a[MAX];
   n=MAX;
   p=a;

   cout<<"Input "<<n<<" number for sorting :"<<endl;
   for(i=0;i<MAX;i++)
   {
	 cin>>a[i];
   }
   cout<<endl;
   bubble_sort(p,MAX);

   cout<<"After bubble_sort:"<<endl;
   for(i=0;i<MAX;i++)
   {
     cout<<a[i]<<" ";
   }
   cout<<endl;
   return 0;
}


void bubble_sort(int a[],int n)//冒泡排序
{
    int j,k,h;
  
    for(h=n-1;h>0;h=k) /*循环到没有比较范围*/
	{
        for(j=0,k=0;j<h;j++) /*每次预置k=0,循环扫描后更新k*/
		{
           if (a[j]>a[j+1]) /*大的放在后面,小的放到前面*/
		   {
			   int t;
               t=a[j];
               a[j]=a[j+1];
               a[j+1]=t; /*完成交换*/
               k=j; /*保存最后下沉的位置。这样k后面的都是排序排好了的。*/
		   }
		}
	}
}

⌨️ 快捷键说明

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