using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HomeWork
{
class Program
{
static void Main(string[] args)
{
int[] Array = new int[5] { 29, 11, 8, 23, 4 };
int[] Array1 = new int[6];
int temp, index = 0,temp1 = 0;
for (int i = 0; i < Array.Length - 1; i++)
{
for (int k = 0; k < Array.Length - 1 - i; k++)
{
if (Array[k] > Array[k + 1])
{
temp = Array[k];
Array[k] = Array[k + 1];
Array[k + 1] = temp;
}
}
} //给数组Array排序
for (int p = 0; p < Array.Length; p++)
{
Array1[p] = Array[p];
} //把数组Array内的值过渡到Array1中,现在Array1中的数是{4,8,11,23,29,0}
Console.WriteLine("请输入要插入的数字");
int Number = int.Parse(Console.ReadLine());
for (int t = 0; t < Array1.Length - 1; t++)
{
if (Number < Array1[t])
{
index = t;
break;
}
else if (Number > Array1[Array1.Length - 2])
{
index = 5;
break;
}
} // 得到要插入的数在数组内的下标index
for (int d = Array1.Length-1; d >=index; d--) //因为0在最后所以是递减的
{
//Array1[d] = Array1[d - 1];
if (d == index + 1)
{
temp1 = Array1[d - 1];
Array1[d] = temp1;
Array1[d-1] = Number;
break;
} // 前两步是复制,和下面的作用一样因为会break跳出循环,第三步将数字替换掉前一位
else if(d > index)
{
temp1 = Array1[d-1];
Array1[d - 1] = Array1[d - 2];
Array1[d] = temp1;
} //不满足第一个if判断时,把最后一个数复制为前一位的数,直到满足第一个if判断
if (d == index)
{
Array1[d] = Number;
break;
} //当Nubmer大于数组内的所有数,直接将Array[5]改为Number,然后跳出循环
}
for (int j = 0; j < Array1.Length; j++)
{
Console.Write(Array1[j] + " ");
} //输出出入了数字并且排好序的数组Array1
Console.Read();
}
}
}
初学C#的小白写的,望大神勿喷。
初学C#的小白写的冒泡排序,往排好序的数组内插入一个数再排好序输出
最新推荐文章于 2024-06-28 17:24:36 发布