// 冒泡拍粗.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;
}