Как сделать частичную сортировку массива? - C#
Формулировка задачи:
Здравствуйте. Мне было дано такое вот задание:
Отсортировать по возрастанию только те элементы массива, которые делятся на сумму своих цифр.
Но я не могу разобраться, как сделать саму сортировку. Вот моя "наработка":
Прошу, помогите
int[] mass = new int[10];
Random rnd = new Random();
int min = 0, max = 0, a = 0, s = 0, ost = 0;
private void button1_Click(object sender, EventArgs e)
{
//Сортировка
for (int i = 0; i < mass.Length; i++)
{
//for (int j = 0; j < mass.Length - 1; j++)
//{
a = mass[i];
while (a > 0)
{
s = s + (a % 10);
a = a / 10;
}
ost = mass[i]%s;
s = 0;
if (ost == 0)
{
Array.Sort(mass);
//if (mass[j] > mass[j + 1])
//{
// int z = mass[j];
// mass[j] = mass[j + 1];
// mass[j + 1] = z;
//}
}
}
// }
}
private void button2_Click(object sender, EventArgs e)
{
//Создание массива
min = Convert.ToInt32(textBox3.Text);
max = Convert.ToInt32(textBox4.Text);
for (int i = 0; i < 10; i++)
mass[i] = rnd.Next(min, max);
for (int i = 0; i < 10; i++) { textBox1.Text += mass[i] + " "; }Решение задачи: «Как сделать частичную сортировку массива?»
textual
Листинг программы
int[] ints = {5, 4, 3, 2, 1};
var sort = InsertionSortSpecific(ints, i => i < 5);
foreach (int i in sort)
{
Console.WriteLine(i);
}