不改变数组的值对数组进行排序
来源:互联网 发布:淘宝财务报表 编辑:程序博客网 时间:2024/05/19 02:17
对数组进行排序时,如何能够做到不改变数组本来的值,而对数组元素进行排序呢?
其实很简单,可以运用指针数组来进行操作,即利用指针数组保存原数组各元素的地址,再对指针数组进行排序操作。期间没有改变指针数组指向地址的值(即原数组的个元素的值),只是对指针数组的地址进行排序操作。
算法实现:
#include<iostream>
using namespace std;
#include<time.h>
#define n 6
int main()
{
int a[n]={0};
//为简便对数组进行初始化,可利用生成随机数的方法进行初始化
time_ ts;
srand((unsigned int)time(&ts)); //设置随机数种子
for(int i=0;i<n;i++)
{
a[i]=rand()%100+1; //a[i]取值范围0-100
cout<<a[i]<<" ";
}
cout<<endl;
//功能实现
int *p[n]; //定义指针数组
//对指针数组的元素进行初始化
for(int i=0;i<n;i++)
{
p[i]=&a[i];
}
//冒泡排序
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(*p[j]>*p[j+1])
{
int *t=p[j];
p[j]=p[j+1];
p[j+1]=t;
}
}
}
for(int i=0;i<n;i++)
{
cout<<*p[i]<<" ";
}
cout<<endl;
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
- 不改变数组的值对数组进行排序
- 对数组进行排序
- 对数组进行排序
- 对数组进行排序
- 对数组的数进行排序
- 对数组的键名进行排序
- 对数组进行选择排序
- java 对数组进行排序
- 对给定数组进行排序
- 对数组进行归并排序
- 对字符串数组进行排序
- java对数组进行排序
- 对数组进行重新排序
- 对数组进行快速排序
- java对数组进行排序
- php对二维数组按照某个键的值进行数组排序
- 利用冒泡排序对数组进行排序
- 使用Array的Sort()方法对数组进行排序
- 用dd实现linux硬盘备份
- Leetcode14. Longest Common Prefix
- 安卓隐藏状态栏
- POJ_3255 Roadblocks(最短路)
- JDK和JRE
- 不改变数组的值对数组进行排序
- HTML<base>标签
- 针对MySQL创建用户后无法登录的原因
- 云客Drupal8源码分析之控制器执行及其解析器controller_resolver
- leetcode-FuzzBuzz
- 批量修改文件编码
- 贪心算法-背包算法-java实现
- #DeepLearningBook#算法概览之九:Monte Carlo Methods
- HTML中footer一直沉底的最常用解决办法