Реализация нескольких типов сортировок и вывод результата - C#

Узнай цену своей работы

Формулировка задачи:

Задание: Вывести массивы в Datagridview 1. 1 столбец:исходный массив(реализовано); 2. 2 столбец сортировка методом пузырька(реализовано); 3. 3 столбец сортировка методом хоара (я не понимаю как использовать эту сортировку, все перебрал); 4. 1 столбец выделение максимального элемента красным минимального зеленым; 5. 2 столбец выделение первой половины градиентом серого а вторую красного; 6. Вне datagridview сделать время сортировки пузырька и хоара и сравнить; вот код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace WindowsFormsApplication8
  11. {
  12. public partial class Form4 : Form
  13. {
  14. int[] a = new int[16];
  15. public Form4()
  16. {
  17. InitializeComponent();
  18. }
  19. private void button1_Click(object sender, EventArgs e)
  20. {
  21. int i;
  22. Random rnd = new Random();
  23. dataGridView1.ColumnCount = a.Length;
  24. for(i=0;i<a.Length;i++)
  25. {
  26. a[i]=rnd.Next(-30,30);
  27. dataGridView1.Invalidate();
  28. dataGridView1.Columns[0].Name = "";
  29. dataGridView1.Rows.Add();
  30. dataGridView1[0, i].Value = a[i];
  31. }
  32. int temp;
  33. for(i=0;i<a.Length;i++)
  34. {
  35. for(int j=i+1;j<a.Length;j++)
  36. {
  37. if(a[i]>a[j])
  38. {
  39. temp = a[i];
  40. a[i] = a[j];
  41. a[j] = temp;
  42. }
  43. }
  44. dataGridView1[1, i].Value = a[i];
  45. }
  46. }
  47.  
  48. }
  49.  
  50. }
прошу помочь так как ещё плохо разбераюсь
4. дополнение: остальные ячейки сделать именно в 1 столбце полупрозрачными
Ап! Срочно пожалуйста помогите. Я бы писал бы сам но вообще не понимаю дальше с чего начать
Прошу помочь дальше 3. связанное с хоаром реализовано (правильно ли реализовал?) прошу помочь сделать остальные пункты очень обновленный код:
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace WindowsFormsApplication8
  11. {
  12.  
  13. public partial class Form4 : Form
  14. {
  15. int[] a = new int[16];
  16. public Form4()
  17. {
  18. InitializeComponent();
  19. }
  20. private void button1_Click(object sender, EventArgs e)
  21. {
  22. int i;
  23. Random rnd = new Random();
  24. dataGridView1.ColumnCount = a.Length;
  25. for (i = 0; i < a.Length; i++)
  26. {
  27. a[i] = rnd.Next(-30, 30);
  28. dataGridView1.Invalidate();
  29. dataGridView1.Columns[0].Name = "";
  30. dataGridView1.Rows.Add();
  31. dataGridView1[0, i].Value = a[i];
  32. }
  33. int temp;
  34. for (i = 0; i < a.Length; i++)
  35. {
  36. for (int j = i + 1; j < a.Length; j++)
  37. {
  38. if (a[i] > a[j])
  39. {
  40. temp = a[i];
  41. a[i] = a[j];
  42. a[j] = temp;
  43. }
  44. }
  45. dataGridView1[1, i].Value = a[i];
  46. }
  47. for (i = 0; i < a.Length; i++)
  48. {
  49. Quicksort.sort(a, 0, a.Length - 1);
  50. dataGridView1[2, i].Value = a[i];
  51. }
  52. }
  53.  
  54. }
  55. class Quicksort
  56. {
  57. public static void sort(int[] a, int first, int last)
  58. {
  59. int p = a[(last - first) / 2 + first];
  60. int temp;
  61. int i = first, j = last;
  62. while (i <= j)
  63. {
  64. while (a[i] < p && i <= last) ++i;
  65. while (a[j] > p && j >= first) --j;
  66. if (i <= j)
  67. {
  68. temp = a[i];
  69. a[i] = a[j];
  70. a[j] = temp;
  71. ++i; --j;
  72. }
  73. }
  74. if (j > first) sort(a, first, j);
  75. if (i < last) sort(a, i, last);
  76. }
  77. }
  78. }

Решение задачи: «Реализация нескольких типов сортировок и вывод результата»

textual
Листинг программы
  1.   public partial class Form1 : Form
  2.     {
  3.         int[] massiv = new int[8] { 1, 24, 10, 12, 3, 6, 2, 18 };
  4.         public Form1()
  5.         {
  6.             InitializeComponent();
  7.             int[] sortTue = new int[8];
  8.             int[] sortONE = new int[8];
  9.             for (int i = 0; i < massiv.Length; i++)
  10.             {
  11.                 sortONE[i] = massiv[i];
  12.                 sortTue[i] = massiv[i];
  13.             }
  14.             int temp = new int();
  15.             for (int i = 0; i < sortONE.Length-1; i++)
  16.             {
  17.                
  18.                 for (int j = i+1; j < sortONE.Length; j++)
  19.                 {
  20.                    
  21.                     if (sortONE[i] > sortONE[j])
  22.                     {
  23.                         temp = sortONE[i];
  24.                         sortONE[i] = sortONE[j];
  25.                         sortONE[j]=temp;
  26.                     }
  27.  
  28.                 }
  29.                
  30.             }
  31.  
  32.             sorting(sortTue, 0, sortTue.Length - 1);
  33.  
  34.             int maxMass = massiv.Max();
  35.             int minMass = massiv.Min();
  36.             double x = sortONE.Length / 2;
  37.             int midelindex = (int)Math.Round(x);
  38.             for (int i = 0; i < sortONE.Length; i++)
  39.             {
  40.                 dataGridView1.Rows.Add(massiv[i], sortONE[i], sortTue[i]);
  41.                 if ((int)dataGridView1.Rows[i].Cells[0].Value==maxMass)
  42.                 {
  43.                     dataGridView1.Rows[i].Cells[0].Style.BackColor = Color.Red;
  44.                 }
  45.  
  46.                 if ((int)dataGridView1.Rows[i].Cells[0].Value == minMass)
  47.                 {
  48.                     dataGridView1.Rows[i].Cells[0].Style.BackColor = Color.Green;
  49.                 }
  50.  
  51.                 if (i< midelindex)
  52.                 {
  53.                     dataGridView1.Rows[i].Cells[1].Style.SelectionBackColor = Color.Gray;
  54.                 }
  55.                 else
  56.                 {
  57.                     dataGridView1.Rows[i].Cells[1].Style.SelectionBackColor = Color.Red;
  58.                 }
  59.             }
  60.         }
  61.  
  62.         public static void sorting(int[] arr, int first, int last)
  63.         {
  64.             int p = arr[(last - first) / 2 + first];
  65.             int temp;
  66.             int i = first, j = last;
  67.             while (i <= j)
  68.             {
  69.                 while (arr[i] < p && i <= last) ++i;
  70.                 while (arr[j] > p && j >= first) --j;
  71.                 if (i <= j)
  72.                 {
  73.                     temp = arr[i];
  74.                     arr[i] = arr[j];
  75.                     arr[j] = temp;
  76.                     ++i; --j;
  77.                 }
  78.             }
  79.             if (j > first) sorting(arr, first, j);
  80.             if (i < last) sorting(arr, i, last);
  81.         }
  82.  
  83.     }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.222 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы