测试学习

Java排序算法

2018-09-07  本文已影响0人  你怎么那么瘦呀

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

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));
    }

}

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);
}

}

上一篇下一篇

猜你喜欢

热点阅读