A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈泽鑫 中级黑马   /  2012-12-8 17:42  /  1566 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈泽鑫 于 2012-12-8 23:22 编辑

自己写的一个冒泡排序
class bubbleSort
{
    public static void main(String[] args)
    {
        int[] arr = {25,485,2185,1,21,3,0,15,15,545,4,312};
        System.out.print("原: ");
        for (int x = 0;x < arr.length ;x++ )
        {
            System.out.print(arr[x]+",");
        }
        System.out.println();
        for (int x = arr.length-1 ;x > 0 ;x-- )
        {
            int index = x,temp = arr[x];
            for (int y = 0; y < x ;y++ )
            {
                if(temp < arr[y])
                {
                    temp = arr[y];
                    index = y;
                }               
            }
            temp = arr[x];
            arr[x] = arr[index];
            arr[index]=temp;
        }
        System.out.print("改: ");
        for (int x = 0;x < arr.length ;x++ )
        {
            System.out.print(arr[x]+",");
        }
        System.out.println();
    }
}


评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

4 个回复

倒序浏览
这个是选择排序,冒泡是相邻的比较,然后交换。
  1. public static void bubbleSort(int[] arr)
  2.         {
  3.                 for(int x=0; x<arr.length-1; x++)
  4.                 {                                                                       
  5.                         for(int y=0; y<arr.length-x-1; y++)//-x:让每一次比较的元素减少,-1:避免角标越界。
  6.                         {
  7.                                 if(arr[y]<arr[y+1])
  8.                                 {
  9.                                        
  10.                                         int temp = arr[y];
  11.                                         arr[y] = arr[y+1];
  12.                                         arr[y+1] = temp;
  13.                                        
  14.                                 }
  15.                         }
  16.                 }
  17.         }
复制代码

未命名.jpg (26.08 KB, 下载次数: 20)

未命名.jpg

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
呵呵..对于排序就是概念有点模糊
回复 使用道具 举报
在排序时候一定要注意for循环的使用,因为排序和查找是最注重空间和时间性能最优化的!
回复 使用道具 举报
邵新瑜 发表于 2012-12-8 19:19
在排序时候一定要注意for循环的使用,因为排序和查找是最注重空间和时间性能最优化的! ...

如何能最好的优化呢?
按老毕的说法,将堆内的置换改成在栈内的置换,这点还比较好做.希尔排序的话,还对数组进行了分组再通过栈内的置换.不过这都是自己的一点看法,也不知道对不对.
希望能举个例子,最好是实际开发中的例子,谢了...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马