赞
踩
代码如下
#include <stdio.h> #include <stdlib.h> //冒泡排序 int MaoPaoSort(int S[], int n){ int i, j, temp; for(i = 0 ;i < n-1 ;i++){ bool flag = false; //定个标志用于判断排序是否提前几轮完成(如果元素没有发生交换则提前完成排序) for ( j = 0; j < n-1; j++) { if (S[j] > S[j+1]) //如果S[j]>S[j+1]那么S[j]后移 { temp = S[j+1]; //S[j]后移操作(交换元素次序) S[j+1] = S[j]; S[j] = temp; flag = true; //元素发生交换,flag = true } } if (flag = false) //元素没有发生交换,排序提前完成 { break; //跳出循环 } } return 1; } int main(){ int n; printf("请输要排序数的个数:"); scanf("%d", &n); int S[n]; printf("请输入要排序的数,使用空格隔开:"); for (int i = 0; i < n; i++){ //6 84 15 2 65 12 5 6 1 0 scanf ("%d", &S[i]); } if (MaoPaoSort(S, n)){ printf("排序成功:"); for (int i = 0; i < n; i++) { printf("%d ",S[i]); } printf("\n"); } system("pause"); }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。