⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.cs

📁 排序算法大全,经典算法源码
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace DataApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Sort1(int[] list)//冒泡排序
        {
            int i, j, temp;
            bool done = false;
            j = 1;
            while ((j < list.Length) && (!done))
            {
                done = true;
                for (i = 0; i < list.Length - j; i++)
                {
                    if (list[i] > list[i + 1])
                    {
                        done = false;
                        temp = list[i];
                        list[i] = list[i + 1];
                        list[i + 1] = temp;
                    }
                }
                j++;
            }
        }
        private void Sort2(int[] list)//选择排序
        {
            int min;
            for (int i = 0; i < list.Length - 1; i++)
            {
                min = i;
                for (int j = i + 1; j < list.Length; j++)
                {
                    if (list[j] < list[min])
                        min = j;
                }
                int t = list[min];
                list[min] = list[i];
                list[i] = t;
            }
        }
        private void Sort3(int[] list)//插入排序
        {
            for (int i = 1; i < list.Length; i++)
            {
                int t = list[i];
                int j = i;
                while ((j > 0) && (list[j - 1] > t))
                {
                    list[j] = list[j - 1];
                    --j;
                }
                list[j] = t;
            }
        }
        private void Sort4(int[] list)//希尔排序
        {
            int inc;
            for (inc = 1; inc <= list.Length / 9; inc = 3 * inc + 1) ;
            for (; inc > 0; inc /= 3)
            {
                for (int i = inc + 1; i <= list.Length; i += inc)
                {
                    int t = list[i - 1];
                    int j = i;
                    while ((j > inc) && (list[j - inc - 1] > t))
                    {
                        list[j - 1] = list[j - inc - 1];
                        j -= inc;
                    }
                    list[j - 1] = t;
                }
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DateTime DT = DateTime.Now;
            textBox2.Text = "";
            string[] sArrary = textBox1.Text.Split(',');
            int[] iArrary = new int[sArrary.Length];
            for (int i = 0; i < iArrary.Length; i++)
                iArrary[i] = int.Parse(sArrary[i]);
            Sort1(iArrary);//冒泡排序
            for (int i = 0; i < iArrary.Length; i++)
                textBox2.Text += iArrary[i] + ",";
            textBox3.Text = (DateTime.Now - DT).TotalSeconds.ToString()+" 秒";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            DateTime DT = DateTime.Now;
            textBox2.Text = "";
            string[] sArrary = textBox1.Text.Split(',');
            int[] iArrary = new int[sArrary.Length];
            for (int i = 0; i < iArrary.Length; i++)
                iArrary[i] = int.Parse(sArrary[i]);
            Sort2(iArrary);//选择排序
            for (int i = 0; i < iArrary.Length; i++)
                textBox2.Text += iArrary[i] + ",";
            textBox3.Text = (DateTime.Now - DT).TotalSeconds.ToString() + " 秒";
        }

        private void button3_Click(object sender, EventArgs e)
        {
            DateTime DT = DateTime.Now;
            textBox2.Text = "";
            string[] sArrary = textBox1.Text.Split(',');
            int[] iArrary = new int[sArrary.Length];
            for (int i = 0; i < iArrary.Length; i++)
                iArrary[i] = int.Parse(sArrary[i]);
            Sort3(iArrary);//插入排序
            for (int i = 0; i < iArrary.Length; i++)
                textBox2.Text += iArrary[i] + ",";
            textBox3.Text = (DateTime.Now - DT).TotalSeconds.ToString() + " 秒";
        }

        private void button4_Click(object sender, EventArgs e)
        {
            DateTime DT = DateTime.Now;
            textBox2.Text = "";
            string[] sArrary = textBox1.Text.Split(',');
            int[] iArrary = new int[sArrary.Length];
            for (int i = 0; i < iArrary.Length; i++)
                iArrary[i] = int.Parse(sArrary[i]);
            Sort4(iArrary);//希尔排序
            for (int i = 0; i < iArrary.Length; i++)
                textBox2.Text += iArrary[i] + ",";
            textBox3.Text = (DateTime.Now - DT).TotalSeconds.ToString() + " 秒";
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -