21xrx.com
2024-11-22 06:35:06 Friday
登录
文章检索 我的文章 写文章
C++排序算法面试题
2023-06-28 05:56:30 深夜i     --     --
C++ 排序算法 面试题

在C++面试中,排序算法是经常被问到的热门话题之一。面试官通常会要求面试者实现一种或多种不同类型的排序算法,例如冒泡排序、选择排序、插入排序等。下面将提供一些常见的C++排序算法面试题及其解答。

1. 冒泡排序是什么?如何在C++中实现?

冒泡排序是一种基本的排序算法,其思想是通过相邻元素之间的比较和交换来将序列排序。通过遍历数组多次,每次比较相邻两个元素的大小,将小的元素向前移动一位,直到整个序列有序。

冒泡排序的C++实现如下:


void bubble_sort(int arr[], int len) {

  for (int i = 0; i < len - 1; i++) {

    for (int j = 0; j < len - 1 - i; j++) {

      if (arr[j] > arr[j + 1]) {

        int temp = arr[j];

        arr[j] = arr[j + 1];

        arr[j + 1] = temp;

      }

    }

  }

}

2. 选择排序是什么?如何在C++中实现?

选择排序是一种简单的排序算法,其思想是遍历数组,每次选出最小的元素,将其与未排序区间的第一个元素交换位置,直到整个序列有序。

选择排序的C++实现如下:


void selection_sort(int arr[], int len) {

  for (int i = 0; i < len - 1; i++) {

    int min_index = i;

    for (int j = i + 1; j < len; j++) {

      if (arr[j] < arr[min_index])

        min_index = j;

      

    }

    if (min_index != i) {

      int temp = arr[i];

      arr[i] = arr[min_index];

      arr[min_index] = temp;

    }

  }

}

3. 插入排序是什么?如何在C++中实现?

插入排序是一种常见的排序算法,其思想是将未排序区间的元素一个个插入到已排序区间的合适位置,直到整个序列有序。

插入排序的C++实现如下:


void insertion_sort(int arr[], int len) {

  for (int i = 1; i < len; i++) {

    int current = arr[i];

    int pre_index = i - 1;

    while (pre_index >= 0 && arr[pre_index] > current) {

      arr[pre_index + 1] = arr[pre_index];

      pre_index--;

    }

    arr[pre_index + 1] = current;

  }

}

除了上述三种排序算法之外,常见的排序算法还包括快速排序、归并排序、堆排序等。面试者应该掌握每种算法的思想和实现方法,并在实现时注意算法的时间复杂度和空间复杂度,以及可能存在的边界问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复