Red de conocimiento informático - Conocimiento informático - Cómo eliminar un programa

Cómo eliminar un programa

La idea para resolver este problema es: dado que la matriz A no está dispuesta en orden descendente, generalmente se realiza primero una búsqueda binaria, pero se debe encontrar el subíndice de la primera X y luego eliminarlo.

Intbitsearch (int a [], int x, int left, int right) {/* biseca la posición de la primera aparición de x en el área de izquierda a derecha de la matriz A y regresa -1* /

int mid, I;

mientras(izquierda & lt;=derecha){

mid =(izquierda+derecha)/2;

if(a[mid]= = x)romper;

if(a[mid]>x)right=中1;

if( a[ mid]<x)left = mid+1;

}

if(izquierda & gt;derecha)return-1;

for( I = mid;i>=left&&a[I]= = x;i-);//Encuentra la posición de la primera x.

Devolver I+1;

}

void Romove(int a[], int *length, int index) {

int I;

if(index & lt; 0 | | index & gt= *length) return; //La posición eliminada excede el límite.

for(i=index;i<*longitud-1;i++)a[I]= a[I+1];

*longitud-;

}

void delSq(int a[], int x, int *longitud) {

int index = BitSearch(a, x, 0, * longitud-1) ;

Eliminar (a, longitud, índice);

}