美文网首页
冒泡算法基础到进价篇

冒泡算法基础到进价篇

作者: easy_luo | 来源:发表于2020-02-23 12:17 被阅读0次

1、基础冒泡

void ly_bubbleSort(int a[], int length){
    
    for (int i = 0; i < length - 1; i++) {
        for (int j = 0; j < length - i - 1; j++) {
            if (a[j] > a[j+1]) {
                int temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
            }
        }
    }
}

2、基础优化

void ly_bubbleSort1(int a[], int length){
    
    BOOL isSort = YES;
    for (int i = 0; i < length - 1; i++) {
        for (int j = 0; j < length - i - 1; j++) {
            if (a[j] > a[j+1]) {
                int temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
                
                isSort = NO;
            }
        }
        if (isSort) {
            break;
        }
    }
}

3、冒泡终极进价

void ly_bubbleSort2(int a[], int length){
    
    BOOL isSort = YES;//默认数组已经排好序
    int index = 0;
    for (int i = 0; i < length - 1; i++) {
        int maxLen = length - i - 1;
        for (int j = index; j < maxLen; j++) {//将最大值往后挪动
            if (a[j] > a[j+1]) {
                int temp = a[j];
                a[j] = a[j+1];
                a[j+1] = temp;
                
                isSort = NO;
            }
        }
        if (isSort) {//如果数组已经排好序,直接返回
            break;
        }
        
        isSort = YES;//默认数组已经排好序
        for (int j = maxLen; j > index; j--) {//将最小值往前挪动
            if (a[j] > a[j-1]) {
                int temp = a[j];
                a[j] = a[j-1];
                a[j-1] = temp;
                
                isSort = NO;
            }
        }
        if (isSort) {//如果数组已经排好序,直接返回
            break;
        }
        index++;//将最小值往前挪动,又进行了一次冒泡,起始位置要加1
    }
}

相关文章

  • 冒泡算法基础到进价篇

    1、基础冒泡 2、基础优化 3、冒泡终极进价

  • 2019-08-11

    Javascript中常用几种基础算法 1 排序-冒泡排序 //冒泡排序 function bubbleSort...

  • iOS 排序算法(冒泡、选择、快速、插入、希尔、归并、基数、堆排

    具体的8种排序算法的实现,请前往我的GitHub。点我过去 1、冒泡排序: 冒泡算法是一种基础的排序算法,这种算法...

  • php之排序-------冒泡排序的优化

    本文需要在理解冒泡排序的基础之上 排序是算法入门的基础操作,冒泡排序很经典。下面这个改进后的冒泡排序,使循环的次数...

  • 开发者应该掌握的几种排序算法

    该篇文章主要介绍了算法基础以及几种常见的排序算法:选择排序、插入排序、冒泡排序、快速排序、堆排序。 一、算法基础 ...

  • 冒泡排序及其简单优化

    冒泡排序是最基础的排序算法,每一轮的冒泡都是把最小的或者最大的冒到一端,是一种稳定的排序算法,时间复杂度为O(n^...

  • 基础算法之冒泡算法

    题记: 在某著名公司电面的时候,问过冒泡算法,当时大脑空白,竟忘记冒泡中心思想是什么,甚至忘记冒泡算法是什么东东,...

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • Objective-C实现冒泡算法

    一,冒泡算法简介 冒泡算法是一种基础的排序算法,这种算法会重复的比较数组中相邻的两个元素。如果一个元素比另一个元素...

  • 八大排序算法

    八大排序算法 1.冒泡排序 冒泡算法是一种基础的排序算法,这种算法会重复的比较数组中相邻的两个元素。如果一个元素比...

网友评论

      本文标题:冒泡算法基础到进价篇

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