//一维数组冒泡排序判断数组是否非乱序. int main(void) { int ar1[10] = {1,2,3,4,5,6,7,8,9,10}; int temp; //因为sizeof是unsigned类型,为了避免编译器警告,所以定义为unsigned类型. //如果定义为int类型,对程序运行也无影响. unsigned int i ,j; unsigned int flag = 1; for(i = 0; i<=sizeof(ar1)/sizeof(ar1[0])-1; i++) { for(j = 0; j < sizeof(ar1)/sizeof(ar1[0])-1-i; j++) { if (ar1[j] > ar1[j+1]) { temp = ar1[j+1]; ar1[j+1] = ar1[j]; ar1[j] = temp; flag = 0; } //以下条件相当于在第一轮对比中,发现顺序是已经排好的.所以并为进入上面的if循环 //flag变量依旧等于1,所以打印输出,并且结束程序. if (i == 0&& j == sizeof(ar1)/sizeof(ar1[0])-2-i && flag==1) { printf("Your array has been sort yet!\n"); printf("It doesn's need to sort!\n"); for( i = 0; i<10; i++) { printf("%d ",ar1[i]); } return 0; } } } printf("Sort it done!\n"); for( i = 0; i<10; i++) { printf("%d ",ar1[i]); } return 0; }
一维数组冒泡排序
最新推荐文章于 2022-01-11 02:31:11 发布