vvhungtam
Tổng số bài gửi : 11 Registration date : 16/09/2007
| Tiêu đề: Sap Xep So Luong Lon 18/5/2008, 14:26 | |
| - Code:
-
#include <iostream> #include <time.h> #include <fstream>
using namespace std;
void nhapfile(char* ch); void xeptang(char* ch); int nhapphantu(); void Batbit(int i,int j); int getbit(int i,int j);
const n=32000; typedef unsigned int KIEU; const sobit=sizeof(KIEU)*8; KIEU b[n/sobit+100]; void main() { for(int i=0;i<(n/sobit+100);i++) b[i]=0; nhapfile("file.txt"); xeptang("file.txt"); }
void Batbit(int i,int j) { b[i]=((1<<j)|b[i]); } int getbit(int i,int j) { return ((b[i]>>j)&1); } void nhapfile(char* ch) { ofstream f;int x; f.open(ch); for(int i=0;i<n;i++) { x=nhapphantu(); f<<x<<' '; } f.close(); } void xeptang(char* ch) { ofstream f(ch,ios::app); f<<endl<<endl; f<<"Day So Sau Khi Da Sap Xep La:\n"; for(int i=0;i<(n/sobit+100);++i) for(int j=0;j<sobit;++j) if(getbit(i,j)) f<<i*sobit+j<<' '; f.close(); } int nhapphantu() { srand(time(NULL));
int tam; do { tam=rand()%(n+800); }while(getbit(tam/sobit,tam&(sobit-1))); Batbit(tam/sobit,tam&(sobit-1)); return tam; }
| |
|