本帖最后由 张明 于 2012-8-16 22:05 编辑
- class Paixu
- {
- public static void sop(int[] arr)
- {
- for(int x=0;x<arr.length;x++)
- {
- System.out.print(arr[x]+"\t");
- }
- System.out.println();
- }
- public static void maopao(int[] arr)
- {
- for(int x=0;x<arr.length-1;x++)
- {
- for(int y=0;y<arr.length-x-1;y++)//减X让每一次比较的元素减少,-1是避免角标越界
- {
- if(arr[y]>arr[y+1])
- {
- int temp=arr[y];
- arr[y]=arr[y+1];
- arr[y+1]=temp;
- }
- sop(arr);
- }
- }
- }
- public static void main(String[] args)
- {
- int[] arr={1,2,3,4,5,6,7,8,9};
- //排序前
- sop(arr);
- System.out.println("-------------");
- //排序后
- maopao(arr);
- }
- }
复制代码 这是根据老师的冒泡排序写出来的,我做了一点改进,让冒泡排序的具体过程体现出来
如代码所示如果arr已经是这种排列好的,还要执行的话,就会出现这种情况
效率十分低下啊,不管arr是否排列好,所要经历的步骤确实相同的,这个只与arr元素个数有关,有没有一种更好的方法呢?
|