嵌入式面经-数据结构-十大排序

  • 冒泡排序

    • 比较相邻的两项,交换顺序排错的项

    • 时间复杂度为O(n^2)

void bubbleSort(int arr[], int size) {  
    for (int i = 0; i < size - 1; i++) {  
        for (int j = 0; j < size - i - 1; j++) {  
            if (arr[j] > arr[j + 1]) {  
                // 交换 arr[j] 和 arr[j+1]  
                int temp = arr[j];  
                arr[j] = arr[j + 1];  
                arr[j + 1] = temp;  
            }  
        }  
    }  
}  
  • 选择排序

    • 在未排序的序列中找到最小(或最大)的元素,存放到排序序列的起始位置

    • 时间复杂度为O(n^2)

void selectionSort(int arr[], int size) {  
    for (int i = 0; i < size - 1; i++) {  
        // 找到未排序部分的最小元素的索引  
        int minIndex = i;  
        for (int j = i + 1; j < size; j++) {  
            if (arr[j] < arr[minIndex]) {  
                minIndex = j;  
            }  
        }  

        // 将最小元素交换到已排序部分的末尾  
        if (minIndex != i) {  
            int temp = arr[i];  
            arr[i] = arr[minIndex];  
            arr[minIndex] = temp;  
        }  
    }  
}  
  • 插入排序

    • 将未排序的元素插入到已排序的序列中的适当位置,以达到排序的目的

    • 时间复杂度为O(n^2)

void insertionSort(int arr[], int size) {  
    for (int i = 1; i < size; i++) {  
        int key = arr[i];  
        int j = i - 1;  
 
      // 将大于key的元素向右移动  
        while (j >= 0 && arr[j] > key) {  
            arr[j + 1] = arr[j];  
            j = j - 1;  
        }  
        arr[j + 1] = key;  
    }  
}  

相关推荐

  1. 嵌入-数据结构-排序

    2024-03-12 07:48:03       48 阅读
  2. 嵌入

    2024-03-12 07:48:03       31 阅读
  3. ARM/Linux嵌入):极氪

    2024-03-12 07:48:03       21 阅读
  4. ARM/Linux嵌入五):中科曙光

    2024-03-12 07:48:03       23 阅读
  5. 03嵌入

    2024-03-12 07:48:03       33 阅读
  6. 02嵌入

    2024-03-12 07:48:03       29 阅读
  7. ARM/Linux嵌入(四):浙江

    2024-03-12 07:48:03       41 阅读
  8. ARM/Linux嵌入七):美团校招

    2024-03-12 07:48:03       24 阅读
  9. ARM/Linux嵌入三):紫光同芯嵌入

    2024-03-12 07:48:03       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-12 07:48:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-12 07:48:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-12 07:48:03       82 阅读
  4. Python语言-面向对象

    2024-03-12 07:48:03       91 阅读

热门阅读

  1. Android中类加载机制

    2024-03-12 07:48:03       46 阅读
  2. 前端自带的base64转化方法

    2024-03-12 07:48:03       43 阅读
  3. 2、设计模式之单例模式详解

    2024-03-12 07:48:03       34 阅读
  4. android JNI float *转MutableList

    2024-03-12 07:48:03       44 阅读
  5. ArrayList与LinkedList的区别

    2024-03-12 07:48:03       49 阅读
  6. django中的QuerySet

    2024-03-12 07:48:03       41 阅读
  7. TypeScript之枚举

    2024-03-12 07:48:03       43 阅读
  8. 如何用prompt提示词开发Open AI项目?

    2024-03-12 07:48:03       47 阅读
  9. Prompt提示词工程构建指南

    2024-03-12 07:48:03       38 阅读
  10. 牛客周赛 Round 36----->C.小红的白色字符串

    2024-03-12 07:48:03       43 阅读
  11. SQLite表添加主键

    2024-03-12 07:48:03       40 阅读