cari

 排序算法测试程序入口

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Diagnostics;
namespace Sort
{
    class Program
    {
        static void Main(string[] args)
        {
            //Test(5);
            EfficiencyTest(100000,10,"BubbleSorter");          
        }
        //<生成随机数GenerateRandomNumber>
        public static List<int> GenerateRandomNumber(int Length)
        {
            List<int> newRandom = new List<int>();
            Random rd = new Random();
            for (int i = 0; i < Length; i++)
            {
                newRandom.Add(rd.Next());
            }
            return newRandom;
        }
        //测试排序算法的正确性
        private static void Test(int n)
        {
            int[] de = GenerateRandomNumber(n).ToArray();
            Console.WriteLine("排序前:");
            foreach (int dee in de)
            {
                Console.WriteLine(dee);
            }
            //int[] d = MergeSorter.Sort(de);
            //int[] d=HeapSorter.Sort(de);
            //int[] d = ShellSorter.Sort(de);
            //int[] d = InsertSorter.Sort(de);
            //int[] d = SelectSorter.Sort(de);
            //int[] d = CockTailSorter.Sort(de);
            int[] d = BubbleSorter.Sort(de);
            Console.WriteLine("排序后:");
            foreach (int dee in d)
            {
                Console.WriteLine(dee);
            }
            //Console.ReadKey();
        }
        //测试各个排序算法效率
	//调用Name函数排序i个数j次
        private static void EfficiencyTest(int i,int j,string Name)
        {
            double AverageTime = 0; ;
            string Cname = null;
            for (int n = 0; n < j;n++)
            {              
                int[] de = GenerateRandomNumber(i).ToArray();
                Stopwatch stopwatch = new Stopwatch();
                stopwatch.Start();
                DateTime dateStart = DateTime.Now;
                switch(Name)
                {
                    case "MergeSorter":
                        MergeSorter.Sort(de);
                        Cname = "MergeSorter";
                        break;
                    case "HeapSorter":
                        HeapSorter.Sort(de);
                        Cname = "HeapSorter";
                        break;
                    case "ShellSorter":
                        ShellSorter.Sort(de);
                        Cname = "ShellSorter";
                        break;
                    case "InsertSorter":
                        InsertSorter.Sort(de);
                        Cname = "InsertSorter";
                        break;
                    case "SelectSorter":
                        SelectSorter.Sort(de);
                        Cname = "SelectSorter";
                        break;
                    case "CockTailSorter":
                        CockTailSorter.Sort(de);
                        Cname = "CockTailSorter";
                        break;
                    case "BubbleSorter":
                        BubbleSorter.Sort(de);
                        Cname = "BubbleSorter";
                        break;
                    case "QuickSorter":
                        QuickSorter.Sort(de);
                        Cname = "QuickSorter";
                        break;
                }
                stopwatch.Stop();
                AverageTime = (DateTime.Now - dateStart).TotalMilliseconds;        
            }
            Double span = AverageTime / j;
            Console.WriteLine(Cname + "排序" + i + "个数" + j + "次所用平均时间为:" + span + " 毫秒");
            Console.ReadKey();
        }
    }
}

以上就是 排序算法测试程序入口的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
C# .NET Development: Panduan Pemula untuk BermulaC# .NET Development: Panduan Pemula untuk BermulaApr 18, 2025 am 12:17 AM

Untuk memulakan C# .NET Development, anda perlu: 1. Memahami pengetahuan asas C# dan konsep teras Rangka Kerja NET; 2. Menguasai konsep asas pembolehubah, jenis data, struktur kawalan, fungsi dan kelas; 3. Belajar ciri -ciri canggih C#, seperti LINQ dan pengaturcaraan asynchronous; 4. Berkenaan dengan teknik debugging dan kaedah pengoptimuman prestasi untuk kesilapan biasa. Dengan langkah -langkah ini, anda secara beransur -ansur boleh menembusi dunia C#.net dan menulis aplikasi yang cekap.

C# dan .net: memahami hubungan antara kedua -duaC# dan .net: memahami hubungan antara kedua -duaApr 17, 2025 am 12:07 AM

Hubungan antara C# dan .NET tidak dapat dipisahkan, tetapi mereka bukan perkara yang sama. C# adalah bahasa pengaturcaraan, sementara .NET adalah platform pembangunan. C# digunakan untuk menulis kod, menyusun bahasa pertengahan .NET (IL), dan dilaksanakan oleh Runtime .NET (CLR).

Relevan berterusan C# .NET: Lihat penggunaan semasaRelevan berterusan C# .NET: Lihat penggunaan semasaApr 16, 2025 am 12:07 AM

C#.NET masih penting kerana ia menyediakan alat dan perpustakaan yang kuat yang menyokong pelbagai pembangunan aplikasi. 1) C# menggabungkan rangka kerja NET untuk menjadikan pembangunan cekap dan mudah. 2) Mekanisme keselamatan dan sampah jenis C#meningkatkan kelebihannya. 3) .NET menyediakan persekitaran berjalan lintas platform dan API yang kaya, meningkatkan fleksibiliti pembangunan.

Dari web ke desktop: fleksibiliti C# .netDari web ke desktop: fleksibiliti C# .netApr 15, 2025 am 12:07 AM

C#.netisversatileforbothwebanddesktopdevelopment.1) Forweb, useasp.netfordynamicapplications.2) Fordesktop, ExployWindowsFormsor Wpfforrichinterfaces.3) UseXamarinforcross-platformdevelopment, enablingcodesharingacrosswindows, macOS, linux, andmobiledevices.

C# .NET dan Masa Depan: Mengadaptasi Teknologi BaruC# .NET dan Masa Depan: Mengadaptasi Teknologi BaruApr 14, 2025 am 12:06 AM

C# dan .NET menyesuaikan diri dengan keperluan teknologi baru melalui kemas kini dan pengoptimuman berterusan. 1) C# 9.0 dan .NET5 Memperkenalkan jenis rekod dan pengoptimuman prestasi. 2) .Netcore meningkatkan sokongan asli dan kontena awan. 3) ASP.Netcore mengintegrasikan dengan teknologi web moden. 4) ML.NET menyokong pembelajaran mesin dan kecerdasan buatan. 5) Pengaturcaraan Asynchronous dan Amalan Terbaik meningkatkan prestasi.

Adakah C# .net sesuai untuk anda? Menilai kebolehgunaannyaAdakah C# .net sesuai untuk anda? Menilai kebolehgunaannyaApr 13, 2025 am 12:03 AM

C#.netissusuitibleforenterprise-levelapplicationswithinthememicrosoftecosystemduetoitsstrongtyping, richlibraries, androbustperformance.

C# kod dalam .NET: Meneroka proses pengaturcaraanC# kod dalam .NET: Meneroka proses pengaturcaraanApr 12, 2025 am 12:02 AM

Proses pengaturcaraan C# dalam .NET termasuk langkah -langkah berikut: 1) Menulis C# Code, 2) Menyusun bahasa pertengahan (IL), dan 3) yang dilaksanakan oleh Runtime .NET (CLR). Kelebihan C# dalam .NET adalah sintaks moden, sistem jenis yang kuat dan integrasi yang ketat dengan Rangka Kerja .NET, sesuai untuk pelbagai senario pembangunan dari aplikasi desktop ke perkhidmatan web.

C# .NET: Meneroka Konsep Teras dan Asas PengaturcaraanC# .NET: Meneroka Konsep Teras dan Asas PengaturcaraanApr 10, 2025 am 09:32 AM

C# adalah bahasa pengaturcaraan yang berorientasikan objek moden yang dibangunkan oleh Microsoft dan sebagai sebahagian daripada Rangka Kerja .NET. 1.C# menyokong pengaturcaraan berorientasikan objek (OOP), termasuk enkapsulasi, warisan dan polimorfisme. 2. Pengaturcaraan Asynchronous dalam C# dilaksanakan melalui Async dan menunggu kata kunci untuk meningkatkan respons aplikasi. 3. Gunakan LINQ untuk memproses koleksi data dengan ringkas. 4. Kesilapan umum termasuk pengecualian rujukan null dan pengecualian indeks luar. Kemahiran penyahpepijatan termasuk menggunakan debugger dan pengendalian pengecualian. 5. Pengoptimuman Prestasi termasuk menggunakan StringBuilder dan mengelakkan pembungkusan yang tidak perlu dan unboxing.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.