Реализация нескольких типов сортировок и вывод результата - C#
Формулировка задачи:
Задание: Вывести массивы в Datagridview
1. 1 столбец:исходный массив(реализовано);
2. 2 столбец сортировка методом пузырька(реализовано);
3. 3 столбец сортировка методом хоара (я не понимаю как использовать эту сортировку, все перебрал);
4. 1 столбец выделение максимального элемента красным минимального зеленым;
5. 2 столбец выделение первой половины градиентом серого а вторую красного;
6. Вне datagridview сделать время сортировки пузырька и хоара и сравнить;
вот код:
прошу помочь так как ещё плохо разбераюсь
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace WindowsFormsApplication8
- {
- public partial class Form4 : Form
- {
- int[] a = new int[16];
- public Form4()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- int i;
- Random rnd = new Random();
- dataGridView1.ColumnCount = a.Length;
- for(i=0;i<a.Length;i++)
- {
- a[i]=rnd.Next(-30,30);
- dataGridView1.Invalidate();
- dataGridView1.Columns[0].Name = "";
- dataGridView1.Rows.Add();
- dataGridView1[0, i].Value = a[i];
- }
- int temp;
- for(i=0;i<a.Length;i++)
- {
- for(int j=i+1;j<a.Length;j++)
- {
- if(a[i]>a[j])
- {
- temp = a[i];
- a[i] = a[j];
- a[j] = temp;
- }
- }
- dataGridView1[1, i].Value = a[i];
- }
- }
- }
- }
4. дополнение: остальные ячейки сделать именно в 1 столбце полупрозрачными
Ап! Срочно пожалуйста помогите. Я бы писал бы сам но вообще не понимаю дальше с чего начать
Прошу помочь дальше
3. связанное с хоаром реализовано (правильно ли реализовал?)
прошу помочь сделать остальные пункты очень
обновленный код:
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace WindowsFormsApplication8
- {
- public partial class Form4 : Form
- {
- int[] a = new int[16];
- public Form4()
- {
- InitializeComponent();
- }
- private void button1_Click(object sender, EventArgs e)
- {
- int i;
- Random rnd = new Random();
- dataGridView1.ColumnCount = a.Length;
- for (i = 0; i < a.Length; i++)
- {
- a[i] = rnd.Next(-30, 30);
- dataGridView1.Invalidate();
- dataGridView1.Columns[0].Name = "";
- dataGridView1.Rows.Add();
- dataGridView1[0, i].Value = a[i];
- }
- int temp;
- for (i = 0; i < a.Length; i++)
- {
- for (int j = i + 1; j < a.Length; j++)
- {
- if (a[i] > a[j])
- {
- temp = a[i];
- a[i] = a[j];
- a[j] = temp;
- }
- }
- dataGridView1[1, i].Value = a[i];
- }
- for (i = 0; i < a.Length; i++)
- {
- Quicksort.sort(a, 0, a.Length - 1);
- dataGridView1[2, i].Value = a[i];
- }
- }
- }
- class Quicksort
- {
- public static void sort(int[] a, int first, int last)
- {
- int p = a[(last - first) / 2 + first];
- int temp;
- int i = first, j = last;
- while (i <= j)
- {
- while (a[i] < p && i <= last) ++i;
- while (a[j] > p && j >= first) --j;
- if (i <= j)
- {
- temp = a[i];
- a[i] = a[j];
- a[j] = temp;
- ++i; --j;
- }
- }
- if (j > first) sort(a, first, j);
- if (i < last) sort(a, i, last);
- }
- }
- }
Решение задачи: «Реализация нескольких типов сортировок и вывод результата»
textual
Листинг программы
- public partial class Form1 : Form
- {
- int[] massiv = new int[8] { 1, 24, 10, 12, 3, 6, 2, 18 };
- public Form1()
- {
- InitializeComponent();
- int[] sortTue = new int[8];
- int[] sortONE = new int[8];
- for (int i = 0; i < massiv.Length; i++)
- {
- sortONE[i] = massiv[i];
- sortTue[i] = massiv[i];
- }
- int temp = new int();
- for (int i = 0; i < sortONE.Length-1; i++)
- {
- for (int j = i+1; j < sortONE.Length; j++)
- {
- if (sortONE[i] > sortONE[j])
- {
- temp = sortONE[i];
- sortONE[i] = sortONE[j];
- sortONE[j]=temp;
- }
- }
- }
- sorting(sortTue, 0, sortTue.Length - 1);
- int maxMass = massiv.Max();
- int minMass = massiv.Min();
- double x = sortONE.Length / 2;
- int midelindex = (int)Math.Round(x);
- for (int i = 0; i < sortONE.Length; i++)
- {
- dataGridView1.Rows.Add(massiv[i], sortONE[i], sortTue[i]);
- if ((int)dataGridView1.Rows[i].Cells[0].Value==maxMass)
- {
- dataGridView1.Rows[i].Cells[0].Style.BackColor = Color.Red;
- }
- if ((int)dataGridView1.Rows[i].Cells[0].Value == minMass)
- {
- dataGridView1.Rows[i].Cells[0].Style.BackColor = Color.Green;
- }
- if (i< midelindex)
- {
- dataGridView1.Rows[i].Cells[1].Style.SelectionBackColor = Color.Gray;
- }
- else
- {
- dataGridView1.Rows[i].Cells[1].Style.SelectionBackColor = Color.Red;
- }
- }
- }
- public static void sorting(int[] arr, int first, int last)
- {
- int p = arr[(last - first) / 2 + first];
- int temp;
- int i = first, j = last;
- while (i <= j)
- {
- while (arr[i] < p && i <= last) ++i;
- while (arr[j] > p && j >= first) --j;
- if (i <= j)
- {
- temp = arr[i];
- arr[i] = arr[j];
- arr[j] = temp;
- ++i; --j;
- }
- }
- if (j > first) sorting(arr, first, j);
- if (i < last) sorting(arr, i, last);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д