it光

学而时习之,温故而知新!

冒泡排序
  1.     public class Test {  
          
            //待排数组  
            private static int[] data = {1, 10, 11, 23, 4, 2, 18, 47, 95, 23};  
              
            //增强for循环打印数组  
            private static void print(int[] data){  
                for(int i : data){  
                    System.out.print(i+",");  
                }  
            }  
              
            //冒泡排序的方法,一定会进行(n-1)+(n-2)+...+1=n(n-1)/2=(n^2/2-n/2)次比较,(不包含在for的条件中进行的比较)  
            //(实际准确的说,包含for循环内的比较的话,比较数为,2((n-1)+(n-2)+...+1)+n=n^2,无关大雅,时间复杂度都取决于n^2)  
            //在最坏的情况下会进行(n-1)+(n-2)+...+1=n(n-1)/2次交换,(这里即进行3次的赋值操作)。  
            //空间上,x占用了一个格子,即额外引用了一个空间来存储数据,这是个常数1。  
            //故时间复杂度O(n^2), 空间复杂度O(1)   
            private static int[] bubbleSort1(int[] data){  
                for(int i = 0;i < data.length;i++){  
                    for(int j = i+1;j < data.length;j++){  
                        //计算时所指的是下面的比较  
                        if(data[i] > data[j]){  
                            int x = data[i];  
                            data[i] = data[j];  
                            data[j] = x;  
                        }     
                    }  
                }  
                return data;  
            }  
            //这是我看到过的另外一种写法,其实思想结果是一样的。  
            //比较次数(n-1)+(n-2)+...+1=n(n-1)/2,时间复杂度同样是O(n^2)  
            private static int[] bubbleSort2(int[] data){  
                for(int i = 0;i < data.length-1;i++){  
                    for(int j = 0;j < data.length-1-i;j++){  
                        if(data[j] > data[j+1]){  
                            int x = data[j];  
                            data[j] = data[j+1];  
                            data[j+1] = x;  
                        }  
                    }  
                }  
                return data;  
            }  
            public static void main(String[] args){  
                print(bubbleSort1(data));  
            }  
        }  
阅读更多

扫码向博主提问

去开通我的Chat快问

itguangit

乐于助人,分享我一路走来的经验。
版权声明:欢迎转载,但请注明出处 https://blog.csdn.net/itguangit/article/details/49930437
个人分类: 数据结构与算法
想对作者说点什么? 我来说一句

冒泡排序C# 冒泡排序

2011年04月20日 15KB 下载

C排序—— 一个简约的方法

2009年02月20日 404B 下载

C# ,冒泡排序,JAVA

2008年11月13日 1KB 下载

没有更多推荐了,返回首页

不良信息举报

冒泡排序

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭