Java&C/C++:一维数组冒泡排序##
package demo_10_6;
public class Page76_5_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={25,14,12,76,101,96,28};
int temp=0;
int change=0;//变化变量
int key=0;//循环终止判断变量
ou:for(int i = 0; i< arr.length ; i++) {
key=change;
//冒泡排序
for(int j =1; j<(arr.length-i) ;j++) {
if(arr[j-1]>arr[j]) {
temp=arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
change++;
}
}
//打印每一次冒泡后数组
for (int z=0;z<arr.length;z++) {
System.out.print(arr[z]+" ");
}
System.out.println();
//判断数组内是否发生了交换,若没有发生交换,直接结束循环
if(change==key) {
break ou;
}
}
}
其中我们使用了两个变量change和key来判断数组内是否发生了冒泡排序,如果在前几次就完成了排序的话就可以直接结束循环节省内存.