Реализация нескольких типов сортировок и вывод результата - 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д