/* 语句++x的执行次数关于n的增长率为n^2,它是语句频度表达式(n-1)*(n-2)/2中增长最快的项 */
#include<iostream>
using namespace std;
#define n 5
int main()
{
int i,j;
int x=0;
int a[n][n]={0};
for( i=2;i<=n;++i)
for( j=2;j<=i-1;++j) //j的初始值决定分母
{
++x;
cout<<"x="<<x<<" i="<<i<<" j="<<j<<endl;
}
return 0;
}
/* 先将最小的数放在最前面,将整数序列重新排列成自小至大有序的整数序列 */
#include<iostream>
#define SIZE 7 // 序列的大小
using namespace std;
int main()
{
int a[SIZE]={6,5,4,3,2,1,0}; //给定数组
int i,j,temp,x=0;
for(i=0;i<SIZE-1;++i)//从第一个数开始与后面的数依次进行比较
for(j=i+1;j<SIZE;++j)
if(a[i]>a[j]) //若a[i]>a[j]则交换两者的位置
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
++x; //计算交换的次数
}
for(i=0;i<SIZE;++i)
cout<<"a"<<"["<<i<<"]= "<<a[i]<<endl;
cout<<"执行次数:"<<x<<endl;
return 0;
}
/* 冒泡排序-先将最大的数放在最后面 ,将整数序列重新排列成自小至大有序的整数序列*/
#include<iostream>
#define SIZE 7 // 序列的大小
using namespace std;
int main()
{
int a[SIZE]={6,5,4,3,2,1,0};
int i,j,temp,x=0;
for(i=SIZE-1;i>=1;--i)
for(j=0;j<i;++j)
if(a[j]>a[j+1])
{
temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
++x;
}
for(i=0;i<SIZE;++i)
cout<<"a"<<"["<<i<<"]= "<<a[i]<<endl;
cout<<"执行次数:"<<x<<endl;
return 0;
}