📄 vectorsort.txt
字号:
//**************************************
//
// Name: Sorting Vectors
// Description:Sorting Vectors, Quick So
// rt...
// By: //hIDRA_5;
//
//--------------------------------------
// -------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//--------------------------------------
// -------------------------------------
int pesq_bin(int matriz[], int valor, int tamanho)
{
int achado = 0;
int alto = tamanho, baixo = 0, med;
med = (baixo + alto) / 2;
printf("Looking: %d\n", valor);
while ((! achado))
{
printf("Low: %d; Medium.: %d; High: %d\n", baixo, med, alto);
if (valor == matriz[med])
achado = 1;
else if (valor < matriz[med])
alto = med - 1;
else
baixo = med + 1;
med = (baixo + alto) / 2;
}
return((achado) ? med: -1);
}
void alg_bolha_1(int matriz[], int tamanho)
{
int achado, tmp, i;
tamanho--;
do
{
achado = 0;
for (i = 0; i < tamanho; i++)
if (matriz[i] > matriz[i + 1])
{
tmp = matriz[i];
matriz[i] = matriz[i + 1];
matriz[i + 1] = tmp;
achado = 1;
}
}
while (achado);
}
void alg_bolha_2(int matriz[], int tamanho)
{
int tmp, i, j;
for (i = 0; i < tamanho; i++)
for (j = 0; j < tamanho; j++)
if (matriz[i] < matriz[j])
{
tmp = matriz[i];
matriz[i] = matriz[j];
matriz[j] = tmp;
}
}
void alg_shell(int matriz[], int tamanho)
{
int tmp, distancia, i, permuta_realizada;
distancia = tamanho / 2;
do
{
do
{
permuta_realizada = 0;
for (i = 0; i < tamanho - distancia; i++)
if (matriz[i] > matriz[i + distancia])
{
tmp = matriz[i];
matriz[i] = matriz[i + distancia];
matriz[i + distancia] = tmp;
permuta_realizada = 1;
}
}
while (permuta_realizada);
}
while (distancia = distancia / 2);
}
void quick_sort(int matriz[], int primeiro, int ultimo)
{
int tmp, baixo, alto, separador_lista;
baixo = primeiro;
alto = ultimo;
separador_lista = matriz[(primeiro + ultimo) / 2];
do
{
while (matriz[baixo] < separador_lista)
baixo++;
while (matriz[alto] > separador_lista)
alto--;
if (baixo <= alto)
{
tmp = matriz[baixo];
matriz[baixo++] = matriz[alto];
matriz[alto--] = tmp;
}
}
while (baixo <= alto);
if (primeiro < alto)
quick_sort(matriz,primeiro,alto);
if (baixo < ultimo)
quick_sort(matriz,baixo,ultimo);
}
void alg_bolha_char(char *matriz[], int tamanho)
{
char *tmp;
int i, j;
for (i = 0; i < tamanho; i++)
for (j = 0; j < tamanho; j++)
if (strcmp(matriz[i],matriz[j]) < 0)
{
tmp = matriz[i];
matriz[i] = matriz[j];
matriz[j] = tmp;
}
}
int main(int argc, char **argv)
{
int i, matriz[100];
char *letters[] = {"ddd", "fff", "eee", "aaa", "ccc", "bbb"};
alg_bolha_char(letters,6);
for (i = 0; i < 6; i++)
printf("letters[%d] = \"\%s\"\ \n",i,letters[i]);
system("pause");
srand(100);
for (i = 0; i < 100; i++) matriz[i] = rand() % 100;
/*
alg_bolha(matriz,100);
alg_shell(matriz,100);
*/
quick_sort(matriz,0,99);
printf("Result = %d\n", pesq_bin(matriz,matriz[33],100));
system("pause");
printf("Result = %d\n", pesq_bin(matriz,matriz[12],100));
system("pause");
printf("Result = %d\n", pesq_bin(matriz,matriz[99],100));
system("pause");
return 0;
}
//--------------------------------------
// -------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -