void getInt(*strint, int val){
int length=0;
int len=0;
int num=val;
if(num == 0){
*strint ='0';
*(strint+1) ='\0';
}
else{
while(num!=0){
num /=10;
length++;
}
len=length;
while(len>0){
*(strint + len - 1)= val %10 + 48;
val /=10;
len--;
}
*(strint +length)='\0';
}
}
Thursday, 17 September 2009
3 ways for sort
here are 3 ways usually use for sort in c++
1.partition
int partition(int* a,int l,int r){
int i=l-1,j=r,v=a[r];
while(1){
while(a[++i] while(a[--j]>v) if(j<=i) break;
if(i>=j) break;
swap(a[i],a[j]);
}
swap(a[i],a[r]);
return i;
}
void qsort(int* a,int l,int r){
if(l>=r)
return;
int i = partition(a,l,r);
qsort(a,l,i-1);
qsort(a,i+1,r);
}
2.insertsort
void insertsort(int* a,int n){
int key;
for(int j=1;j {
key = a[j];
for(int i=j-1;i>=0&&a[i]>key;i--){
a[i+1] = a[i];
}
a[i+1] = key;
}
}
3.buble
void buble(int *a,int n){
for(int i=0;i {
for(int j=1;j {
if(a[j] {
int temp=a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
}
1.partition
int partition(int* a,int l,int r){
int i=l-1,j=r,v=a[r];
while(1){
while(a[++i] while(a[--j]>v) if(j<=i) break;
if(i>=j) break;
swap(a[i],a[j]);
}
swap(a[i],a[r]);
return i;
}
void qsort(int* a,int l,int r){
if(l>=r)
return;
int i = partition(a,l,r);
qsort(a,l,i-1);
qsort(a,i+1,r);
}
2.insertsort
void insertsort(int* a,int n){
int key;
for(int j=1;j {
key = a[j];
for(int i=j-1;i>=0&&a[i]>key;i--){
a[i+1] = a[i];
}
a[i+1] = key;
}
}
3.buble
void buble(int *a,int n){
for(int i=0;i {
for(int j=1;j {
if(a[j] {
int temp=a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
}
Subscribe to:
Posts (Atom)