1.定义一个和要排序数组a[10]长度一样的数组, 这里定义为10,index[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},值为10个下标。

2. 用冒泡排序,索引值代替小下标即可

#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[])
{int a[10] = {4, 2, 1, 6, 7, 9, 0, 3, 5, 8};int index[10] = {0, 1, 2, 3, 4, 5, 6, 7 ,8, 9};for(int i = 0; i < 10 - 1; i++) {for(int j = 0; j < 10 - i - 1; j++) {if(a[index[j]] > a[index[j + 1]]) {int temp = index[j];index[j] = index[j + 1];index[j + 1] = temp;}}}for(int i = 0; i < 10; i++) {  //打印原数组(未排序)的值printf("%d ", a[i]);}printf("\n");for(int i = 0; i < 10; i++) { //打印排好序的值printf("%d ", a[index[i]]);}return 0;
}

转载于:https://www.cnblogs.com/wxzy/p/3847651.html

利用索引数组排序 不改变原数组值的位置相关推荐

  1. JavaScript数组方法大全(分为会不会改变原数组)

    若看不懂注释的输出方式可以将代码粘贴到浏览器中执行观看 1. 数组通用方法 Array.from: 将一个类数组转化成数组 类数组:Set, Map,对象等可遍历对象皆为类数组 Array.from( ...

  2. JS数组方法中哪些会改变原数组,哪些不会?

    前言 作为一名前端开发人员,我们每天都会与数组打交道.JS 也提供了很多操作数组的原生 API 供我们调用.在这些方法里面,有的方法会改变原数组,有些不会改变原数组.别看这一点小小的区别,往往会造成巨 ...

  3. js 数组操作方法(不改变原数组与改变原数组方法)

    一: 不改变原数组的方法 1. concat() 方法用于连接两个或多个数组 let a =[1,2,3], b=[4,5,6]; let c = a.concat(b); console.log(a ...

  4. JS数组方法-改变原数组与不改变原数组的方法集合

    改变原数组的方法 push() push() 方法向数组的 末尾添加 一个或多个元素,并返回新的长度 var arr = ['a','b','c']; console.log( arr.push('d ...

  5. 数组方法中,会改变原数组、不会改变原数组的方法有哪些?

    会改变原数组: 1 添加元素类:(返回新的长度) push() 把元素添加到数组尾部 unshift() 在数组头部添加元素 2 删除元素类:(返回的是被删除的元素) pop() 移除数组最后一个元素 ...

  6. js中会改变原数组的方法及不改变原数组的方法整理

    改变原数组: 1.pop():删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值.如果数组已经为空,则 pop() 不 改变数组,并返回 undefined 值. ...

  7. 重写数组的方法(改变原数组)

    下图是我自我学习模拟数组时总结的一些重新数组的方法: 本文我们暂不讨论不改变原数组的方法,只谈改变原数组用到的 6 种方法. 改变原数组的方法 push() 按参数顺序向数组尾部添加元素,返回新数组的 ...

  8. html设置数组的方法,js改变原数组的方法有哪些?

    js改变原数组的方法 1.pop() pop():删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值.如果数组已经为空,则 pop() 不 改变数组,并返回 un ...

  9. 数组常用方法:是否改变原数组

    改变原数组的: shift:将第一个元素删除并且返回删除元素,空即为undefined unshift:向数组开头添加元素,并返回新的长度 pop:删除最后一个并返回删除的元素 push:向数组末尾添 ...

最新文章

  1. 《例说8051:单片机程序设计案例教程》——2-4 指令格式
  2. 查找计算机视觉、模式识别、图像处理领域的国际会议和会议排名
  3. java8 注解增强_Java8新增的重复注解功能示例
  4. webstrom快捷键
  5. 体检套餐管理系统 0421
  6. 冗余机器人以及雅克比伪逆矩阵
  7. php切割文件上传,php+ajax实现文件切割上传功能示例
  8. 别说你不知IE9正式版浏览器小技巧9则
  9. TCP/IP源码分析
  10. c语言爱心代码简单,利用c语言实现简单心形的代码分享
  11. 新的默认设置:Sass颜色同义词库
  12. xp母盘制作流程+QQDLL修改和系统文件DLL修改(转)
  13. SpringCloud项目启动
  14. 【树莓派】树莓派系统安装
  15. maven docker 部署到多台机器上。。_TensorFlow Serving + Docker + Tornado机器学习模型生产级快速部署
  16. tp5欢迎页 (获取系统信息)
  17. MMDeteceion之系列一(环境安装、模型测试、训练以及模型后处理工具)
  18. 数据库------绪论+关系数据库及其运算基础
  19. DataFrame-索引与切片
  20. python写入指定的excel_python 写入Excel

热门文章

  1. java并发编程实战-第三章-对象的共享
  2. 第 11 章 Paragraphs
  3. struts2学习(3)struts2核心知识II
  4. hdoj-2028-Lowest common multiple plus
  5. c# 读取记事本txt文档到DataTable中
  6. 计算机网络常见面试真题详解
  7. 拥塞控制中的开环和闭环控制
  8. hive表移到mysql_如何将Hive数据表移动到MySql?
  9. webserver接口_SpringBoot内置源码解析WebServer初始化过程
  10. Pycharm常用高效技巧总结