C#算法基础之插入排序
2013-11-28 18:02
477 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsolePractice { class CArray { private int[] arr; //数组大小 private int upper; //下标 private int numElements; /// <summary> /// 初始化数组参数 /// </summary> /// <param name="size"></param> public CArray(int size) { arr = new int[size]; upper = size - 1; numElements = 0; } /// <summary> /// 插入方法 /// </summary> /// <param name="item">存储的数</param> public void Insert(int item) { arr[numElements] = item; numElements++; } /// <summary> /// 输出方法 /// </summary> public void DisplayElements() { for (int i = 0; i <= upper; i++) { Console.Write(arr[i] + " "); } Console.WriteLine(); } /// <summary> /// 清除数组 /// </summary> public void Clear() { for (int i = 0; i <= upper; i++) { arr[i] = 0; } numElements = 0; } /// <summary> /// 插入排序算法 /// </summary> public void InsertionSort() { int inner, temp; for (int outer = 1; outer <= upper; outer++) { temp = arr[outer]; inner = outer; //把一个元素取出来逐个跟之前的元素比较。 //若该元素较小则较大的元素往右移。 //若该元素较大则结束循环。 while (inner > 0 && arr[inner - 1] >= temp) { arr[inner] = arr[inner - 1]; inner -= 1; } arr[inner] = temp; this.DisplayElements(); } } } class C_shape { static void Main() { CArray nums = new CArray(10); Random rnd = new Random(100); for (int i = 0; i < 10; i++) { nums.Insert(rnd.Next(0, 100)); } Console.WriteLine("Before sorting:"); nums.DisplayElements(); Console.WriteLine("During sorting:"); nums.InsertionSort(); Console.WriteLine("After sorting:"); nums.DisplayElements(); Console.ReadKey(); } } }
运行结果:
结论:
冒泡排序,选择排序和插入排序的执行效率:
在数据较小时:选择排序和冒泡排序的执行效率相等,而插入排序则比其他两种算法速度的慢一倍。
在数据较大时:执行效率:选择排序>冒泡排序>插入排序,选择排序执行效率最高
相关文章推荐
- PHP四种基础算法详解(冒泡排序、选择排序、插入排序、快速排序)
- 数据结构基础算法整理归纳:插入排序(三)
- C#算法 选择排序、冒泡排序、插入排序
- 算法 - 插入排序(C#)
- C#算法基础之选择排序
- C#算法基础之快速排序
- 基础算法----找出集合中最大和值的子数组,插入排序,找出数组中出现最多的元素
- C#算法 插入排序
- 算法基础之插入排序
- 【算法基础】由插入排序来看如何分析和设计算法
- java 算法基础之六插入排序与冒泡排序
- 一步一步复习数据结构和算法基础-插入排序(2)
- python实现基础排序算法之(插入排序)
- 算法导论->算法基础->2.1插入排序 (从小到大)
- 基础的东西,关于二叉树的几个算法 C#的
- 算法基础-插入排序进阶之希尔排序
- 算法基础 (插入排序、合并排序算法)
- 基础算法之四--排序: 之插入排序
- 算法基础:排序之插入排序
- java基础算法之插入排序