1、在一组排序好的数组中,插入一个数。
int[] a = { 90, 80, 70, 60, 50, 40, 30, 20, 10, 0 };
int b = 25;
for (int i = 0; i <= a.Length - 2; i++)
{
if (b > a[i])
{
for (int j = a.Length - 2; j >= i; j--)
{
a[j + 1] = a[j];
}
a[i] = b;
break;
}
}
for (int i = 0; i < a.Length; i++)
{
Console.Write(a[i] + " ");
}
Console.ReadKey();
2、对一个乱序的一维数组排序
int[] a = { 1, 3, 5, 2, 4, 6 };
int t;
for (int j = 1; j <= a.Length - 1; j++)
{
for (int i = a.Length - 1; i >= j; i--)
{
if (a[i - 1] > a[i])
{
t = a[i - 1];
a[i - 1] = a[i];
a[i] = t;
}
}
}
for (int k = 0; k < a.Length; k++)
{
Console.Write(a[k] + " ");
}
Console.ReadKey();
3、求一组数中的最大值和第二大值
int[] a = { 1, 4, 7, 2, 5, 8, 3, 6, 9 };
int max1 = 0, max2 = 0;
for (int i = 0; i < a.Length; i++)
{
if (a[i] > max1)
{
max2 = max1;
max1 = a[i];
}
else if (a[i] > max2)
{
max2 = a[i];
}
}
Console.WriteLine(max1);
Console.WriteLine(max2);
Console.ReadKey();
4、求一组数中的前n个最大值
int[] a = { 1, 4, 7, 2, 5, 8, 3, 6, 9 }, b;
int c;
Console.WriteLine("想对前几个数排序?");
c = int.Parse(Console.ReadLine());
b = new int[c];
for (int i = 0; i < a.Length; i++)
{
for (int j = 0; j < b.Length; j++)
{
if (a[i] > b[j])
{
for (int k = b.Length - 2; k >= j; k--)
{
b[k + 1] = b[k];
}
b[j] = a[i];
break;
}
}
}
Console.WriteLine("数组中最大的前" + c + "个是:");
for (int k = 0; k < b.Length; k++)
{
Console.Write(b[k] + " ");
}
Console.ReadKey();








网友评论