1. 程式人生 > >1.4.2冒泡法(先排序再去重)

1.4.2冒泡法(先排序再去重)

#include<iostream>
using namespace std;
int main(){
	int a[101],n,i,j,t;
	cout<<"請輸入共有多少本書,即n=";
	cin>>n;
	cout<<"請依次輸入各本書的ISBN編號:"<<endl;
	for(i=1;i<=n;i++){
		cin>>a[i];
	}/*O(N)*/
	
	//開始氣泡排序
	for(i=1;i<=n-1;i++){
		for(j=1;j<=n-i;j++){
			if(a[j]>a[j+1]){
				t=a[j];
				a[j]=a[j+1];
				a[j+1]=t;
			} 
		}
	}/*O(N^2)*/ 
	
	cout<<"排序過後的ISBN編號依次為:"<<a[1]<<" ";//輸出第一個數	
	for(i=2;i<=n;i++){
		//現在的序列是有序的了 
		//從2迴圈到n
		if(a[i]!=a[i-1]) {//如果當前這個數是第一次出現則輸出
			cout<<a[i]<<" "; 
		}
	}/*O(N)*/
	
	getchar();
	return 0;
}

/*整個演算法的時間複雜度是O(2*N+N^2),忽略低階,最終該方法的時間複雜度為O(N^2)*/