Отсортировать Json файл методом пузырька - C#
Формулировка задачи:
Есть Json файл, надо его отсортировать по Kod методом пузырька
Листинг программы
- [
- {
- "KC": "3",
- "Kod": "114521226",
- "Name": "База по ремонту бурового оборудования",
- "global_id": 63739355,
- "system_object_id": "114521226"
- },
- {
- "KC": "6",
- "Kod": "143314139",
- "Name": "Устройства вспомогательные и оборудование для подготовки образцов полимерных материалов",
- "global_id": 63741226,
- "system_object_id": "143314139"
- },
- {
- "KC": "5",
- "Kod": "143020544",
- "Name": "Инструменты и принадлежности для вычислительной техники",
- "global_id": 63740707,
- "system_object_id": "143020544"
- },
- {
- "KC": "2",
- "Kod": "142929556",
- "Name": "Агрегаты на базе червячных машин для переработки резиновых смесей",
- "global_id": 63735873,
- "system_object_id": "142929556"
- },
- {
- "KC": "8",
- "Kod": "142926571",
- "Name": "Оборудование для химической обработки",
- "global_id": 63740075,
- "system_object_id": "142926571"
- },
- ]
Решение задачи: «Отсортировать Json файл методом пузырька»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- namespace CyberForum
- {
- public class JArraySortingV2
- {
- public static void Main(string[] args)
- {
- const string jsonText = @"
- [
- {
- ""KC"": ""3"",
- ""Kod"": ""114521226"",
- ""Name"": ""База по ремонту бурового оборудования"",
- ""global_id"": 63739355,
- ""system_object_id"": ""114521226""
- },
- {
- ""KC"": ""6"",
- ""Kod"": ""143314139"",
- ""Name"": ""Устройства вспомогательные и оборудование для подготовки образцов полимерных материалов"",
- ""global_id"": 63741226,
- ""system_object_id"": ""143314139""
- },
- {
- ""KC"": ""5"",
- ""Kod"": ""143020544"",
- ""Name"": ""Инструменты и принадлежности для вычислительной техники"",
- ""global_id"": 63740707,
- ""system_object_id"": ""143020544""
- },
- {
- ""KC"": ""2"",
- ""Kod"": ""142929556"",
- ""Name"": ""Агрегаты на базе червячных машин для переработки резиновых смесей"",
- ""global_id"": 63735873,
- ""system_object_id"": ""142929556""
- },
- {
- ""KC"": ""8"",
- ""Kod"": ""142926571"",
- ""Name"": ""Оборудование для химической обработки"",
- ""global_id"": 63740075,
- ""system_object_id"": ""142926571""
- },
- ]";
- JArray jsonArray = JArray.Parse(jsonText);
- int itemsCount = jsonArray.Count;
- string[] codes = new string[itemsCount];
- int[] indices = new int[itemsCount];
- for (int index = 0; index < itemsCount; ++index)
- {
- codes[index] = (string)jsonArray[index]["Kod"];
- indices[index] = index;
- }
- BubbleSort(codes, indices, StringComparer.OrdinalIgnoreCase);
- for (int index = 0; index < itemsCount; ++index)
- {
- Console.WriteLine("cycle index: {0}\tarray index: {1}", index, indices[index]);
- Console.WriteLine(jsonArray[indices[index]]);
- }
- }
- private static void BubbleSort<TKey, TValue>(TKey[] keys, TValue[] values, IComparer<TKey> comparer)
- {
- if (keys.Length != values.Length)
- {
- // error! arrays' length does not match!
- throw new ArgumentException("Oops! Invalid arrays' length.");
- }
- int length = keys.Length;
- if (length == 1)
- {
- // nothing to sort - one item in array
- return;
- }
- for (int index = 0; index < length; ++index)
- {
- for (int inner = length - 1; inner > index; --inner)
- {
- int comparison = comparer.Compare(keys[inner], keys[inner - 1]);
- if (comparison < 0)
- {
- Swap(ref keys[inner], ref keys[inner - 1]);
- Swap(ref values[inner], ref values[inner - 1]);
- }
- }
- }
- }
- private static void Swap<TValue>(ref TValue left, ref TValue right)
- {
- TValue temp = left;
- left = right;
- right = temp;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д