⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vectorsort.txt

📁 矢量的快速排序
💻 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 + -