前言:此代码设计的比较简洁,可能不太容易理解,插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。
一:截图
二:代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace InsertSort
{
public partial class Frm_Main : Form
{
public Frm_Main()
{
InitializeComponent();
}
private int[] G_int_value;//定义数组字段
private Random G_Random = new Random();//创建随机数对象
private void btn_sort_Click(object sender, EventArgs e)
{
if (G_int_value != null)
{
for (int i = 0; i < G_int_value.Length; ++i)//循环访问数组中的元素
{
int temp = G_int_value[i];//定义一个int变量,并使用获得的数组元素值赋值
int j = i;
while ((j > 0) && (G_int_value[j - 1] > temp))//判断数组中的元素是否大于获得的值
{
G_int_value[j] = G_int_value[j - 1];//如果是,则将后一个元素的值提前
--j;
}
G_int_value[j] = temp;//最后将int变量存储的值赋值给最后一个元素
}
txt_str2.Clear();//清空控件内字符串
foreach (int i in G_int_value)//遍历字符串集合
{
txt_str2.Text += i.ToString() + ", ";//向控件内添加字符串
}
}
else
{
MessageBox.Show("首先应当生成数组,然后再进行排序。", "提示!");
}
}
private void btn_Generate_Click(object sender, EventArgs e)
{
G_int_value = new int[G_Random.Next(10, 20)];//生成随机长度数组
for (int i = 0; i < G_int_value.Length; i++)//遍历数组
{
G_int_value[i] = G_Random.Next(0, 100);//为数组赋随机数值
}
txt_str.Clear();//清空控件内字符串
foreach (int i in G_int_value)//遍历字符串集合
{
txt_str.Text += i.ToString() + ", ";//向控件内添加字符串
}
}
}
}