21xrx.com
2025-03-21 23:28:17 Friday
文章检索 我的文章 写文章
C++代码的排序
2023-07-11 22:40:28 深夜i     --     --
C++ 排序 算法 数组 指针

C++是一门强大的编程语言,广泛应用于世界各地的软件开发和编程工作中。在编写程序时,排序算法是最基本也最常用的算法之一。在C++中,有许多已经现成的排序函数可以使用,同时也可以编写自己的排序函数。本文将介绍C++代码的排序。

首先,C++中的排序函数是std::sort()。该函数需要两个参数:第一个是待排序的数组的起始地址,第二个是数组的结束地址,函数会按升序排序整个数组。如果需要按照其他方式排序,则可以传递一个可调用对象(比如一个函数或一个lambda表达式)作为第三个参数。以下是一个例子:

#include <algorithm>
#include <iostream>
#include <vector>
int main() {
  std::vector<int> numbers = 3;
  std::sort(numbers.begin(), numbers.end());
  for (int num : numbers)
    std::cout << num << " ";
  
  std::cout << "\n";
  return 0;
}

输出结果为:1 1 2 3 3 4 5 5 6 9,由小到大排序了数组。

除了std::sort()函数,C++中还有其他一些常见的排序算法,比如冒泡排序、选择排序和插入排序等。以下是一个简单的选择排序的实现:

void selectionSort(int arr[], int n) {
  int i, j, min_index;
  for (i = 0; i < n - 1; i++) {
    min_index = i;
    for (j = i + 1; j < n; j++) {
      if (arr[j] < arr[min_index])
        min_index = j;
      
    }
    std::swap(arr[i], arr[min_index]);
  }
}

该函数接受一个整型数组和数组长度,采用选择排序算法对数组进行排序。

最后,需要提醒的是,如果需要对自己的数据结构进行排序,则需要实现一个比较函数。比较函数需要接受两个参数,返回值为bool类型。以下为一个比较函数的例子:

bool compareStrings(std::string a, std::string b) {
  return a.length() < b.length();
}

该函数用于按字符串长度对字符串数组进行排序,返回长度较短的字符串小于长度较长的字符串的布尔值。

总结来说,C++中的排序函数简单易用,但也可以根据需要编写自己的排序函数。无论使用哪种方式,排序是在编程工作中经常需要用到的基本技能之一,值得掌握。

  
  

评论区