频道栏目
首页 > 考试 > 其他 > 正文
冒泡排序、快速排序、选择排序
2017-04-18 09:46:00         来源:努力努力再努力  
收藏   我要投稿

1、冒泡排序

原理:临近的两个数字比较,按照从小到大或者从大到小进行排序,一共进行N趟排序(N是数组的长度)
时间复杂度:O(n^2)

@Test
    public void bubbleSort()
    {
        int a[]={18,4,26,3,99,54};
        int length=a.length;
        for(int j=0;ja[i+1])
                {
                    int temp=a[i];
                    a[i]=a[i+1];
                    a[i+1]=temp;
                }
            }
        }

        for(int i=0;i

2、快速排序

这里写图片描述 时间复杂度:O(n*log2n)<喎"https://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPjwvcD48cHJlIGNsYXNzPQ=="brush:java;"> int AdjustArray(int s[], int l, int r) //返回调整后基准数的位置 { int i = l, j = r; int x = s[l]; //s[l]即s[i]就是第一个坑 while (i < j) { // 从右向左找小于x的数来填s[i] while(i < j && s[j] >= x) j--; if(i < j) { s[i] = s[j]; //将s[j]填到s[i]中,s[j]就形成了一个新的坑 i++; } // 从左向右找大于或等于x的数来填s[j] while(i < j && s[i] < x) i++; if(i < j) { s[j] = s[i]; //将s[i]填到s[j]中,s[i]就形成了一个新的坑 j--; } } //退出时,i等于j。将x填到这个坑中。 s[i] = x; return i; }


3、选择排序

在未排序的的序列遍历出最小值或最大值,然后放在排序序列的起始位置
再从剩下的未排序的序列遍历出最小值,放在排序序列的末尾位置,重复直到所有元素排序完成

public class Select_Sort {

    public void SelectSort(int[] a,int n)
    {
        int min,temp;
        for(int i=0;ia[j])
                {
                    min=j;//查找最小值的位置
                }
            }
            if(min!=i)//与原最小值转换,得出新最小值
            {
                temp=a[min];
                a[min]=a[i];
                a[i]=temp;
            }
        }
    }
    public static void main(String[] args) {
        int a[]={23,32,88,12,29,91};
        Select_Sort ss=new Select_Sort();
        int n=a.length;
        ss.SelectSort(a, n);
        for(int i=0;i
        

点击复制链接 与好友分享!回本站首页
上一篇:[边双连通分量 Hash] BZOJ 4435 [Cerc2015]Juice Junctions
下一篇:hdu 3980 Paint Chain (sg函数 )
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站