using System;
namespace lesson13_冒泡排序练习题
{
class Program
{
#region 练习题1
//定义一个数组,长度为20,每个元素值随机0到100的数
//使用冒泡排序进行升序排序并打印
//使用冒泡排序进行降序排序并打印
static void A()
{
int[] a = new int[20];
for (int i = 0; i < a.Length; i++)
{
Random rd = new Random();
int sjs = rd.Next(1, 100);
a[i] = sjs;
}
//升序
for (int j = 0; j < a.Length; j++)
{
for (int i = 0; i < a.Length - 1 - j; i++)
{
if (a[i] > a[i + 1])
{
int x = 0;
x = a[i];
a[i] = a[i + 1];
a[i + 1] = x;
}
}
}
for (int i = 0; i < a.Length; i++)
{
Console.Write(" " + a[i]);
}
Console.WriteLine();
//逆序
for (int j = 0; j < a.Length; j++)
{
for (int i = 0; i < a.Length - 1 - j; i++)
{
if (a[i] < a[i + 1])
{
int x = 0;
x = a[i];
a[i] = a[i + 1];
a[i + 1] = x;
}
}
}
for (int i = 0; i < a.Length; i++)
{
Console.Write(" " + a[i]);
}
}
#endregion
#region 练习题2
//写一个函数,实现一个数组的排序,并返回结果。可以根据参数决定是升序还是降序
static void B(bool a)
{
int[] b = new int[20];
for (int i = 0; i < b.Length; i++)
{
Random rd = new Random();
int sjs = rd.Next(1, 100);
b[i] = sjs;
}
if (a == true)
{
for (int j = 0; j < b.Length; j++)
{
for (int i = 0; i < b.Length - 1 - j; i++)
{
if (b[i] > b[i + 1])
{
int x = 0;
x = b[i];
b[i] = b[i + 1];
b[i + 1] = x;
}
}
}
for (int i = 0; i < b.Length; i++)
{
Console.Write(" " + b[i]);
}
}
else
{
for (int j = 0; j < b.Length; j++)
{
for (int i = 0; i < b.Length - 1 - j; i++)
{
if (b[i] < b[i + 1])
{
int x = 0;
x = b[i];
b[i] = b[i + 1];
b[i + 1] = x;
}
}
}
for (int i = 0; i < b.Length; i++)
{
Console.Write(" " + b[i]);
}
}
}
#endregion
static void Main(string[] args)
{
Console.WriteLine("冒泡排序练习题");
A();
Console.WriteLine();
B(false);
}
}
}