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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a283398689 中级黑马   /  2013-10-8 16:28  /  1794 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

ublic static void quickSort(int a[]) {
                for(int i=0;i<a.length;i++){
                        int         temp = 0;
                        for(int j=0;j<a.length-1;j++){
                                if(a[i]>a[j]){
                                 temp = a[i];
                                 a[i] = a[j];
                                        a[j] = temp;
                                }
                        }
                }
               
                 
        }

我这样都可以排序啊 。  

为什么啊~

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
李江 + 1 + 3

查看全部评分

10 个回复

正序浏览
验证过了,可以排序,排序方式是选择.   temp那边是小误差,没关系的.
回复 使用道具 举报
jìng╮煜 发表于 2013-10-8 21:18
你这写的不对.  这样只是换了位置,并不是排上序了.选择排序也不是这么写的.j=i+1.   才是. ...

但是我这样 也可以排序阿 也是对的,
关键我不理解的是第一次排序 temp  和temp[j]其实都是一个下标
回复 使用道具 举报
To 金牌黑马 2013-10-9 08:42:47
9#
如果问题已解决,请将帖子改为提问结束,如果没有解决请楼主继续提问,谢谢合作
回复 使用道具 举报
补充一点,  如果要改成上述我说的那样.    循环结束条件也要改一改.
回复 使用道具 举报
你这写的不对.  这样只是换了位置,并不是排上序了.选择排序也不是这么写的.j=i+1.   才是.
回复 使用道具 举报
本帖最后由 winsking 于 2013-10-8 20:27 编辑

你这是选择排序,毕老师讲过的
它的工作原理是首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
选择排序和冒泡排序思路上有一点相似,都是最简单直观的,当然效率也是最低的

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
这种排序称之为选择排序
选择排序的原理是:每次取一个角标上的值与其他角标上的数值比较,如果大于,将两个值互换。
你可以把关于排序的视频在看看,望你早点理解。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报

a>a[j]){    //进行判断 eg:第一次是a0和j0比较

他们同一个下标 这样的写法肯定是不对的
回复 使用道具 举报
怎么说呢,这个排序是比较基础的排序,思路也不太难懂,就是一个temp中间变量。外加两个相互交换的值。你也可以变化一下条件if(a[i]<a[j]) 实现另一种排序方式

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
for(int i=0;i<a.length;i++){                                   //i=0
                        int         temp = 0;                    //你在这里定义了temp=0
                        for(int j=0;j<a.length-1;j++){
                                if(a[i]>a[j]){    //进行判断 eg:第一次是a0和j0比较,如果a0大于j0则交换a0,j0的位置
                                 temp = a[i];
                                 a[i] = a[j];
                                        a[j] = temp

所以你执行循环后肯定是进行了排序,不知理解没有,不理解可以再问

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
李江 + 1 + 3

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马