#include<stdio.h>
#include<stdlib.h>
#include<stdio.h>
#include<stdlib.h>
void test(){
int n = 0;
int i = 0, j = 0;
int *arr = NULL;
printf("请输入数据的个数");
scanf_s("%d",&n);
//根据元素的个数申请空间
arr = (int*)calloc(n,sizeof(int));
if (NULL == arr) {
perror("calloc");
return;
}
//键盘给动态数组,获取输入
printf("请输入%d个int数据",n);
for (i = 0; i < n; i++) {
scanf_s("%d",arr+i);
}
//冒泡排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j + 1 < n - i; j++) {
if (arr[j] > arr[j + 1]) {//大的往后放
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
//数组的便利
for (i = 0; i < n; i++) {
printf("%d ",arr[i]);
}
printf("\n");
//释放空间
if (arr != NULL) {
free(arr);
arr = NULL;
}
}
int main() {
test();
while (1);
return 0;
}
优化
25 //排序
26 for(i=0;i<n‐1;i++)
27 {
28 int flag = 0;
29 for(j=0;j<n‐i‐1;j++)
30 {
31 if(arr[j]>arr[j+1])//从小‐‐‐>大 交换
32 {
33 int tmp = 0;
34 tmp = arr[j];
35 arr[j]=arr[j+1];
36 arr[j+1]=tmp;
37 flag = 1;
38 }
39 }
40
41 if(flag == 0)//数组已经有序
42 break;
43 }
44 printf("i=%d\n",i);