天天看點

冒泡排序include “stdafx.h”

// 冒泡拍粗.cpp : 定義控制台應用程式的入口點。

// 溫故知新

include “stdafx.h”

void bubleSort_small_2_large(int a[], int n)

{

int i, j, k;

/* 氣泡法要排序n-1次 */
for (j = 1; j<n; j++)  
{
    /* 值比較大的元素沉下去後,隻把剩下的元素中的最大值再沉下去(下标大的位置) 就OK啦 */
    for (i = 0; i<n - j; i++)  
    {
        if (a[i]>a[i + 1])  /* 把值比較大的元素沉到底(下标大的位置) */
        {
            k = a[i];
            a[i] = a[i + 1];
            a[i + 1] = k;
        }
    }
}
           

}

void bubleSort_large_2_small(int a[], int n)

{

int i, j, k;

/* 氣泡法要排序n-1次 */
for (j = 1; j<n; j++)
{
    /* 值比較大的元素沉下去後,隻把剩下的元素中的最大值再沉下去(下标大的位置) 就OK啦 */
    for (i = 0; i<n - j; i++)
    {
        if (a[i]<a[i + 1])  /* 隻改此處--就把小的沉下去了 */
        {
            k = a[i];
            a[i] = a[i + 1];
            a[i + 1] = k;
        }
    }
}
           

}

int _tmain(int argc, _TCHAR* argv[])

{

{

int a[] = {10,12,13,15,16,5,85,56};

int i = 0;

printf(“############################\n–>測試1:\n–>原始資料:\n”);

for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)

{

printf(“%d “, a[i]);

}

printf(“\n”);

printf(“–>sizeof(a):%d!\n–>sizeof(a[0]):%d\n–>sizeof(a)/sizeof(a[0]):%d!\n–>排序後資料如下:\n”,

sizeof(a), sizeof(a[0]), sizeof(a) / sizeof(a[0]));

bubleSort_small_2_large(a, sizeof(a) / sizeof(a[0]));

for (i = 0; i < sizeof(a) / sizeof(a[0]);i++)

{

printf(“%d “,a[i]);

}

printf(“\n”);

}

{
    int a[] = { 10, 9, 8, 7,6,5,4,3,2,1,0,-1,-2};
    int i = 0;
    printf("############################\n-->測試2:\n-->原始資料:\n");
    for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    {
        printf("%d  ", a[i]);
    }
    printf("\n");
    printf("-->sizeof(a):%d!\n-->sizeof(a[0]):%d\n-->sizeof(a)/sizeof(a[0]):%d!\n-->排序後資料如下:\n", 
        sizeof(a), sizeof(a[0]), sizeof(a) / sizeof(a[0]));
    bubleSort_small_2_large(a, sizeof(a) / sizeof(a[0]));
    for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    {
        // printf("%d\r", a[i]); // \r is table key  此方法隻列印一個10
        printf("%d  ", a[i]);
    }
    printf("\n");

}

{
    int a[] = { 10, 12, 13, 15, 16, 5, 85, 56 };
    int i = 0;
    printf("##大->小##########################\n-->測試1:\n-->原始資料:\n");
    for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    {
        printf("%d  ", a[i]);
    }
    printf("\n");
    printf("-->sizeof(a):%d!\n-->sizeof(a[0]):%d\n-->sizeof(a)/sizeof(a[0]):%d!\n-->排序後資料如下:\n",
        sizeof(a), sizeof(a[0]), sizeof(a) / sizeof(a[0]));
    bubleSort_large_2_small(a, sizeof(a) / sizeof(a[0]));
    for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    {
        printf("%d  ", a[i]);
    }
    printf("\n");

}

{
    int a[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, -1, -2 };
    int i = 0;
    printf("##大->小##########################\n-->測試2:\n-->原始資料:\n");
    for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    {
        printf("%d  ", a[i]);
    }
    printf("\n");
    printf("-->sizeof(a):%d!\n-->sizeof(a[0]):%d\n-->sizeof(a)/sizeof(a[0]):%d!\n-->排序後資料如下:\n",
        sizeof(a), sizeof(a[0]), sizeof(a) / sizeof(a[0]));
    bubleSort_large_2_small(a, sizeof(a) / sizeof(a[0]));
    for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
    {
        // printf("%d\r", a[i]); // \r is table key  此方法隻列印一個10
        printf("%d  ", a[i]);
    }
    printf("\n");

}
return 0;
           

}

繼續閱讀