用C#写一个程序,把int数组排序并输出原始下标
时间: 2024-03-12 15:47:11 浏览: 128
用C#实现的排序算法
以下是一个用C#实现的基于冒泡排序的程序,可以将一个int数组进行排序,并输出原始下标:
```csharp
using System;
class Program {
static void Main(string[] args) {
// 定义一个int数组
int[] arr = { 9, 4, 7, 3, 1, 5, 8, 2, 6 };
// 定义一个int数组来存储原始下标
int[] index = new int[arr.Length];
for (int i = 0; i < index.Length; i++) {
index[i] = i;
}
// 冒泡排序
for (int i = 0; i < arr.Length - 1; i++) {
for (int j = 0; j < arr.Length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// 交换数组元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
// 交换原始下标
temp = index[j];
index[j] = index[j + 1];
index[j + 1] = temp;
}
}
}
// 输出排序后的数组和原始下标
Console.WriteLine("原始数组:");
for (int i = 0; i < arr.Length; i++) {
Console.Write(arr[i] + " ");
}
Console.WriteLine();
Console.WriteLine("原始下标:");
for (int i = 0; i < index.Length; i++) {
Console.Write(index[i] + " ");
}
Console.WriteLine();
}
}
```
以上代码中,先定义一个int数组和一个同样长度的int数组index来存储原始下标,然后使用冒泡排序对原数组进行排序,并且每次交换数组元素时,也同时交换原始下标数组的元素。最后输出排序后的数组和原始下标即可。
阅读全文