21xrx.com
2024-11-22 03:31:09 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++中的排序函数简单易用,但也可以根据需要编写自己的排序函数。无论使用哪种方式,排序是在编程工作中经常需要用到的基本技能之一,值得掌握。

  
  

评论区

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