reverse反向排列

#include <iostream>
#include <vector>
#include <algorithm> //reverse算法用的到


using namespace std;


int main()
{
vector<int> v;

for (size_t i=0; i != 10; ++i)
{
v.push_back(i);
}

vector<int>::iterator it;
for (it=v.begin(); it!=v.end(); it++)
{
cout << *it << ' ';
}


cout << endl;
cin.get();
reverse(v.begin(),v.end());

for (it=v.begin(); it!=v.end(); it++)
{
cout << *it << ' ';
}

cout << endl;
cin.get();


return 0;
}
让数据反向排列在不同的场景和编程语言中有不同的实现方法: - **Java实现数组反向排列**:可以通过以中间元素为中心,将左右对称位置的元素互换的方式实现。以下是示例代码: ```java package com.gx.demo; public class Test5 { /** * 将数组arr中的元素反向排列,比如将{1,4,7,2,5,8,3,6,9}变为{9,6,3,8,5,2,7,4,1} * * @param arr */ public void invertArr(int[] arr) { int len = arr.length; for (int i = 0; i <= len / 2; i++) { // 以中间元素为中心,左右对称位置的元素互换 int t = arr[i]; arr[i] = arr[len - 1 - i]; arr[len - 1 - i] = t; } } /** * 将数组中的元素依次打印出来,用for each语句实现 * * @param arr */ public void printArr(int[] arr) { boolean first = true; for (int a : arr) { // 第一次打印带花括号,其他打印带逗号 System.out.printf("%s%d", (first ? "{" : ","), a); first = false; } System.out.println("}"); // 最后补上花括号 } public static void main(String[] args) { int[] iArr = {1, 4, 7, 2, 5, 8, 3, 6, 9}; Test5 ex1 = new Test5(); System.out.print("数组初始值是"); ex1.printArr(iArr); ex1.invertArr(iArr); // 调用方法,数组作为参数 System.out.print("反向排列后,数组的值是"); ex1.printArr(iArr); } } ``` 此代码定义了`invertArr`方法用于将数组反向排列,`printArr`方法用于打印数组,在`main`方法中进行了测试[^2]。 - **C语言实现数组反向排列**:可以使用`for`循环,将后面的数依次与前面的数据交换位置。示例代码如下: ```c #include <stdio.h> void reverseArray(int arr[], int n) { for (int i = 0; i < n / 2; i++) { int temp = arr[i]; arr[i] = arr[n - 1 - i]; arr[n - 1 - i] = temp; } } int main() { int arr[] = {1, 2, 3, 4, 5}; int n = sizeof(arr) / sizeof(arr[0]); printf("数组初始值是: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } reverseArray(arr, n); printf("\n反向排列后,数组的值是: "); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; } ``` 该代码定义了`reverseArray`函数用于将数组反向排列,在`main`函数中进行了测试,通过交换数组元素的位置实现反向排列[^3]。 - **C语言实现字符串反向排列**:可以考虑函数传址调用,将数组名传入,函数内部通过操作原数组各元素各自地址对应的值实现元素位置的交换。示例代码如下: ```c #include <stdio.h> #include <string.h> void reverseString(char arr[]) { int len = strlen(arr); for (int i = 0; i < len / 2; i++) { char temp = arr[i]; arr[i] = arr[len - 1 - i]; arr[len - 1 - i] = temp; } } int main() { char arr[] = "hello"; printf("字符串初始值是: %s\n", arr); reverseString(arr); printf("反向排列后,字符串的值是: %s\n", arr); return 0; } ``` 此代码定义了`reverseString`函数用于将字符串反向排列,在`main`函数中进行了测试,通过交换字符数组元素的位置实现字符串的反向排列[^4]。 - **MySQL实现数据反向排序**:在MySQL中,如果要对表中的数据进行反向排序,可以使用`ORDER BY`子句结合`DESC`关键字。例如,对`movie`表按`m_id`反向排序: ```sql SELECT * FROM movie ORDER BY m_id DESC; ``` 此SQL语句会将`movie`表中的数据按`m_id`字段反向排序返回结果[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值