ソート8:カクテルソート

6901 ワード

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace CocktailSort
 8 {
 9     class Program
10     {
11         static void Main(string[] args)
12         {
13             int[] arr = new int[100];
14             Random rd = new Random();
15             for (int i = 0; i < arr.Length; i++)
16             {
17                 arr[i] = rd.Next(100);
18             }
19             Sort(arr);
20         }
21 
22         public static void Sort(int[] arr)
23         {
24             // arr.Length/2 
25             for (int i = 0; i < arr.Length / 2; i++)
26             {
27                 //
28                 for (int j = i; j < arr.Length - i - 1; j++)
29                     if (arr[j] > arr[j + 1])
30                         Swap(arr, j, j + 1);
31                 //
32                 for (int j = arr.Length - i - 1; j > i; j--)
33                     if (arr[j] < arr[j - 1])
34                         Swap(arr, j, j - 1);
35             }
36             foreach (int i in arr)
37                 Console.WriteLine(i);
38         }
39 
40         public static void Swap(int[] arr, int left, int right)
41         {
42             int temp = arr[left];
43             arr[left] = arr[right];
44             arr[right] = temp;
45         }
46     }
47 }