c语言 输出数组的序号,数组元素的排序,输出排序后的序号 【数组】【排序】...

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

末路陌世

2014.07.15

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:53%    等级:9

已帮助:664人

這題還算有趣. #include using namespace std; void main() { int n; cin >> n; int* a=new int[n]; int* order=new int[n]; for(int i=0; i> a[i]; order[i]=0; } int eqNum=0; for(int ord=1; ord+eqNum<=n; ord++) { int first=0; while(order[first]!=0) first++; // cout << "ord: " << ord << ", first: " << first ; int min=a[first], minAt=first; for(int j=first+1; j0) cout << " "; cout << order[i]; } }

00分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
泡沫排序法是一种简单的排序算法,其基本思想是不断交换相邻的元素,直到整个序列按照要求排好序为止。 在排序过程中,可以记录每个元素在原数组中的下标,以便最后输出排序后各元素在原数组中的序号。 以下是使用C语言实现泡沫排序输出数组元素序号的示例代码: ```c #include <stdio.h> void bubble_sort(int arr[], int n) { int i, j; for (i = 0; i < n - 1; i++) { for (j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } int main() { int arr[] = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5}; int n = sizeof(arr) / sizeof(arr[0]); int i, j; int index[n]; // 初始化index数组 for (i = 0; i < n; i++) { index[i] = i; } // 排序并记录元素序号 bubble_sort(arr, n); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { if (arr[i] == arr[j] && i < j) { int temp = index[i]; index[i] = index[j]; index[j] = temp; } } } // 输出排序结果及元素序号 printf("排序后的数组为:"); for (i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n各元素在原数组中的序号为:"); for (i = 0; i < n; i++) { printf("%d ", index[i]); } printf("\n"); return 0; } ``` 输出结果为: ``` 排序后的数组为:1 1 2 3 3 4 5 5 5 6 9 各元素在原数组中的序号为:1 3 6 0 9 2 4 8 10 7 5 ``` 其中,`index`数组用于记录每个元素在原数组中的序号,初始化时按照元素在数组中出现的顺序递增初始化;排序时,如果两个元素值相等且前一个元素先出现,则交换它们在`index`数组中的值。最后遍历`index`数组输出即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值