//实现一个随机数组中第i大和第i小数字的交换
void MySwap()
{
//例如是第3大和第3小
int num=3;
int[] list = { 4, 6, 2, 1, 4, 2, 5 };
//复制数组进行冒泡排序
int[] mylist = list;
for (int i = 0; i < mylist.Length; i++)
{
for (int j = i+1; j < mylist.Length; j++)
{
if (mylist[i] < mylist[j])
{
int temp = mylist[i];
mylist[i] = mylist[j];
mylist[j] = temp;
}
}
}
//找到数组中第一个等于第i小的数,令它等于第i大的数,并立刻终止循环
//防止随机数组中第i大的数有两个
for (int i = 0; i < list.Length; i++)
{
if (list[i] == mylist[num - 1])
{
list[i] = mylist[mylist.Length - num + 1];
break;
}
}
//找到数组中第一个等于第i小的数,令它等于第i大的数,并立刻终止循环
for (int i = 0; i < list.Length; i++)
{
if (list[i] == mylist[mylist.Length - num + 1])
{
list[i] = mylist[num - 1];
break;
}
}
{
//例如是第3大和第3小
int num=3;
int[] list = { 4, 6, 2, 1, 4, 2, 5 };
//复制数组进行冒泡排序
int[] mylist = list;
for (int i = 0; i < mylist.Length; i++)
{
for (int j = i+1; j < mylist.Length; j++)
{
if (mylist[i] < mylist[j])
{
int temp = mylist[i];
mylist[i] = mylist[j];
mylist[j] = temp;
}
}
}
//找到数组中第一个等于第i小的数,令它等于第i大的数,并立刻终止循环
//防止随机数组中第i大的数有两个
for (int i = 0; i < list.Length; i++)
{
if (list[i] == mylist[num - 1])
{
list[i] = mylist[mylist.Length - num + 1];
break;
}
}
//找到数组中第一个等于第i小的数,令它等于第i大的数,并立刻终止循环
for (int i = 0; i < list.Length; i++)
{
if (list[i] == mylist[mylist.Length - num + 1])
{
list[i] = mylist[num - 1];
break;
}
}
}