Java排序算法

滴滴面试测试开发提到问题

1.前几家公司辞职的理由
2.代码:编辑程序将一组无序的数组分成奇偶两组并按顺序排序
3.朋友圈的点赞功能,写测试用例
4.说说目前的项目中测试主要涉及的方面
5.对我们有什么想要了解的吗

Java代码编写排序
  • 冒泡排序

1.相邻的两个数据作比较,找出最小值,最小排列在前
2.循环执行,直到下一个数值始终大于前一个数值

void  bullbleSort(){
         int len = a.length;
         for (int i=0; i<len;i++){
             for (int j=0; j<len-1-i;j++){
                 if (a[j]>a[j+1]){
                     int temp = a[j];
                     a [j] = a[j+1];
                     a[j+1] = temp;
                 }
             }
         }
         System.out.println(Arrays.toString(a));
    }
  • 选择排序

1.数值分区为已经排序(0,i-1)和未排序(i,n)
2.从未排序的中数组中找到最小的minIndex,将最小数值与i交换
3.循环执行

void selectSort(){
         int len = a.length;
         for (int i =0;i < len; i++){
             int minindex = i;
             for (int j=i+1; j<len ; j++){
                 if (a[j]< a[minindex]){
                     minindex = j;
                 }
                 int temp = a[j];
                 a[j] = a[minindex];
                 a[j] = temp;
             }
         }
         System.out.println(Arrays.toString(a));
    }
  • 插入排序

1.分为已经排序的和未排序的两个部分
2.取未排序的值,向前比较,如果已排序的数大于未排序的元素,已经排序的index+1
3.直到取到已经排序的元素小于等于新的元素,新元素插入这个元素后边
4.循环

void insertSort(){
        int len = a.length;
        int preIndex, current;
        for (int i =1 ;i<len; i++){
            preIndex = i - 1;
            current = a[i];
            while (preIndex >=0&& a[preIndex] > current){
                a[preIndex+1] = a[preIndex];
                preIndex--;
            }
            a[preIndex+ 1] = current;
        }
        System.out.println(Arrays.toString(a));
    }

}
  • 快速排序法
    1.选一个基准,比如选第一个数为基准
    2.将数据大于它的放在右边,小于的放在左边
    3.递归排序左右两边的数据

int mpartition(int a[], int l, int r) {
int pivot = a[l];

while (l<r) {
    while (l<r && pivot<=a[r]) r--;
    if (l<r) a[l++]=a[r];
    while (l<r && pivot>a[l]) l++;
    if (l<r) a[r--]=a[l];
}
a[l]=pivot;
return l;

}

void quick_sort (int a[], int l, int r) {

if (l < r) {
    int q = mpartition(a, l, r);
    msort(a, l, q-1);
    msort(a, q+1, r);
}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载自:https://egoistk.github.io/2016/09/10/Java%E6%8E%92%E5...
    chad_it阅读 1,011评论 0 18
  • 转载请注明出处:http://egoistk21.xyz/2016/09/10/Java排序算法专题/ 今天晚上做...
    EGOISTK21阅读 3,256评论 13 69
  • 小时候的我真的不爱看书。说来惭愧,现在和周围的同事聊起来,四大名著他们不仅看了一遍,有的甚至都能发表自己独到的见解...
    一个正经的小疯子阅读 510评论 0 3
  • 前言:学了一小段时间的openCV了,想整理一下,以后哪些知识点忘了,可以回头看一下。 一:OpenCV+visu...
    未小琴阅读 191评论 0 0
  • “我们也就这样,走在这条路上,无论何方黑白,深流不息。” 01 初识流深这个博主,要追溯到我的高中时期。 彼时的她...
    苏默_阅读 500评论 0 2