美文网首页
数据结构与算法-冒泡排序&快速排序

数据结构与算法-冒泡排序&快速排序

作者: 星空下奔跑 | 来源:发表于2018-03-30 20:20 被阅读0次

冒泡排序

排序思想:通过一趟排序将最小的数升至最上层。

void BubbleSort(Sqlist &L){
    for(i=1;i<=L.length;++i){
        for(j=L.length;j>i;j--){
            if(L.r[j]<L.r[j-1]){
                L.r[j]<->L.r[j-1];
            }
    }
}

思想2:将大数沉底:

private void bubleSort(int[] array) {

        int len=array.length;
        for (int i = len; i >0; i--) {
            for (int j = 0; j < i-1; j++) {
                if (array[j] > array[j + 1]) {
                    int tmp=array[j];
                    array[j]=array[j+1];
                    array[j+1]=tmp;
                }
            }
        }
        println(array);
    }

快速排序

排序思想:通过一趟排序将顺序表分割成两部分,一部分始终小于另一部分,直到排序完成。

int Partition(Sqlist &L,int low,int high){
    L.r[0]=L.r[low];
    while(low<high){
        while(low<high&&RT(L.r[high],L.r[low]){ --high;}
        L.r[low]<->L.r[high];
        while(low<high&&LT(L.r[low],L.r[high]) {++low}
        L.r[low]<->L.r[high];
    }//if
    return low;
}

void QuickSort(Sqlist &L,int low,int high){
    if(low<high){
        int pivotkey=Partition(L,1,L.length);
        QuickSort(L,low,pivotkey-1);
        QuickSort(L,pivotkey+1,high);
    }//if
}

Java实现:

private void quickSort(int[] array,int start ,int end){
        if (start < end) {
            int next = exchange(array, start, end);
            quickSort(array, start, next-1);
            quickSort(array, next+1, end);
        }
            ///println(array);
    }

    private int exchange(int[] array,int start,int end) {
        int target = array[start];
        while (start < end) {
            while (start<end&&target<=array[end])end--;
            int tmp = array[start];
            array[start] = array[end];
            array[end] = tmp;
            while (start<end&&target>=array[start]) start++;
            int tmp1 = array[start];
            array[start] = array[end];
            array[end] = tmp1;

        }
        return start;

    }

相关文章

  • 算法与数据结构路线图

    学习算法与数据结构,深刻理解计算机科学 排序算法:插入、冒泡、选择、希尔、快速、归并、堆排序、计数排序、桶排序、基...

  • Python 算法大全

    这个库涵盖了多种算法和数据结构的介绍,比如: 排序算法(冒泡排序、希尔排序、插入排序、桶排序、合并排序、快速排序、...

  • C语言:关于数据的几种排序算法

    数据结构的排序算法有很多种。其中,快速排序、希尔排序、堆排序、直接选择排序不是稳定的排序算法;基数排序、冒泡排序、...

  • 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

    图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序 图形化排序算法比较:快速排序、插入排序、选择排序、冒泡排序

  • 排序算法-堆排序

    参考: Java排序算法(五):堆排序 【算法与数据结构】图说堆排序 【数据结构】排序算法:希尔、归并、快速、堆排...

  • IOS常见算法

    常见算法: 快速排序: 选择排序: 冒泡排序: 测试代码:

  • 排序算法

    排序算法 冒泡排序 选择排序 插入排序 快速排序(最常见) 希尔排序 归并排序 源码:Sorting 冒泡排序 冒...

  • 基础排序算法

    一 冒泡排序(buddle sort) 众所周知,冒泡排序一般是我们接触数据结构与算法里面的第一种排序算法。其经典...

  • iOS常见算法

    升序算法:用冒泡排序法 选择排序法 快速排序

  • OC常用算法

    排序算法 冒泡排序 选择排序 快速排序 插入 二分查找

网友评论

      本文标题:数据结构与算法-冒泡排序&快速排序

      本文链接:https://www.haomeiwen.com/subject/fkzvcftx.html