`
yang名扬
  • 浏览: 559 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

插入排序

 
阅读更多
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;
using System.Collections;

namespace 直接插入排序2008
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        /// <summary>
        /// 产生一个没有重复数的随机填充的数组
        /// </summary>
        /// <returns></returns>
        private int[] getIntArray(int count)
        {
            int[] numbers = new int[count];
            Random rad = new Random();
            Hashtable hastTable = new Hashtable();
            for (int i = 0; i < count; i++)
            {
                int radValue = rad.Next(count * 3);
                while (hastTable.ContainsKey(radValue))
                {
                    radValue = rad.Next(count * 3);
                }
                numbers[i] = radValue;
                hastTable.Add(radValue, radValue);
            }
            return numbers;
        }


        //对一个数组中的数进行排序
        private void button1_Click(object sender, EventArgs e)
        {
            int[] numbers = getIntArray(int.Parse(textBox1.Text));
            int temp, insertIndex;//temp保存要排序的元素,/insertIndex为要进行比较的元素在数组中的序号
             //请在下面补充代码
            for (int i = 1; i < numbers.Length;i++ )
            {
                temp = numbers[i];
                insertIndex = i - 1;
                while (insertIndex >= 0 && temp < numbers[insertIndex])
                {
                    numbers[insertIndex + 1] = numbers[insertIndex];
                    insertIndex--;

                }
                numbers[insertIndex + 1] = temp;

            }
        
           




            listBox1.Items.Clear();
            foreach (int n in numbers)
            {
                listBox1.Items.Add(n);
            }
        }

        //在已经排序的数列中插入一个数
        private void button2_Click(object sender, EventArgs e)
        {
            int[] num = new int[5];
            num[0]=1;
            num[1]=3;
            num[2]=5;
            num[3] = 7;
            int input = int.Parse(textBox2.Text);
            //insertIndex为要进行比较的元素在数组中的序号
            int insertIndex = 3;
            //请在下面补充代码
            while(insertIndex>=0 && input<num[insertIndex]){
                num[insertIndex + 1] = num[insertIndex];
                insertIndex--;
            }
            num[insertIndex + 1] = input;



            listBox1.Items.Clear();
            foreach (int n in num)
            {
                listBox1.Items.Add(n);
            }
        }
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics