/* 語句++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;
}