#include #include #include void swap(double *p, double *q); void bubbleSort(double* a, int n); int main() { int n, i; double *a = NULL; while (true) { printf("n:\n"); if (scanf("%d", &n) < 1 || n <= 0) break; delete[] a; a = new double[n]; for (i = 0; i < n; ++i) { a[i] = (double)(rand() % 100); } for (i = 0; i < n; ++i) { printf("%5.1lf", a[i]); if ((i+1) % 10 == 0) printf("\n"); } printf("\n====\n"); bubbleSort(a, n); printf("Sorted:\n"); for (i = 0; i < n; ++i) { printf("%5.1lf", a[i]); if ((i+1) % 10 == 0) printf("\n"); } printf("\n====\n"); } delete[] a; return 0; } void bubbleSort(double* a, int n) { bool inverse = true; int k = 0; while (inverse) { inverse = false; for (int i = 0; i < n-k-1; ++i) { if (a[i] > a[i+1]) { swap(&(a[i]), &(a[i+1])); inverse = true; } } ++k; } } void swap(double *p, double *q) { double tmp = *p; *p = *q; *q = tmp; }