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 - ;
numElements = ;
} /// <summary>
/// 插入方法
/// </summary>
/// <param name="item">存储的数</param>
public void Insert(int item)
{
arr[numElements] = item;
numElements++;
} /// <summary>
/// 输出方法
/// </summary>
public void DisplayElements()
{
for (int i = ; i <= upper; i++)
{
Console.Write(arr[i] + " ");
}
Console.WriteLine();
} /// <summary>
/// 清除数组
/// </summary>
public void Clear()
{
for (int i = ; i <= upper; i++)
{
arr[i] = ;
}
numElements = ;
} /// <summary>
/// 选择排序算法
/// </summary>
public void SelectionSort()
{
int min, temp;
//每一轮都可以确定一个最小值,排到最前面
for (int outer = ; outer <= upper; outer++)
{
min = outer;
//每一次拿自身数值与排在它后面的数组比较大小,若比它小则记录下标,一轮过后调换数值。
for (int inner = outer + ; inner <= upper; inner++)
{
if (arr[inner] < arr[min]) min = inner;
}
temp = arr[outer];
arr[outer] = arr[min];
arr[min] = temp;
this.DisplayElements();
}
}
} class C_shape
{
static void Main()
{
CArray nums = new CArray();
Random rnd = new Random();
for (int i = ; i < ; i++)
{
nums.Insert(rnd.Next(, ));
}
Console.WriteLine("Before sorting:");
nums.DisplayElements();
Console.WriteLine("During sorting:");
nums.SelectionSort();
Console.WriteLine("After sorting:");
nums.DisplayElements();
Console.ReadKey();
}
}
}

运行结果:

最新文章

  1. sql:Oracle11g 表,视图,存储过程结构查询
  2. POJ2288 Islands and Bridges
  3. 3 javascript
  4. 【转载】使用LFM(Latent factor model)隐语义模型进行Top-N推荐
  5. lighttpd+fastcgi模块分析
  6. 关于C#虚函数和构造函数的一点理解
  7. Can&#39;t create/write to file &#39;/tmp/#sql_3105_0.MYI&#39; (Errcode: 13)
  8. MySQL高效获取记录总数
  9. 摆弄【Nhibernate 协会制图--导乐陪伴分娩】
  10. C语言程序_管理系统
  11. 一、Spring Cloud介绍
  12. 【spring源码分析】IOC容器初始化(六)
  13. 利用System.Uri转URL为绝对地址
  14. QQ模仿之弹窗ADDFriend事件
  15. OPENGL NEHE Lesson11 11课的计算公式推导
  16. Linux和Docker常用命令
  17. 十、api自动化环境问题及解决方案汇总(持续更新)
  18. linux 命令 uniq
  19. 数据库 DB MySQL 基本操作 CRUD 多表 MD
  20. 【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)

热门文章

  1. Javascript高级篇-JS闭包
  2. Android系统中Parcelable和Serializable的区别
  3. Lua学习笔记(一):搭建开发环境
  4. 介绍50个 WordPress 动作挂钩
  5. linux虚拟主机wdcp系列教程之四
  6. hadoop数据[Hadoop] 实际应用场景之 - 阿里
  7. MyBatis之八:需要说明的几个java api的生命周期以及封装
  8. 详解Android Handler的使用-别说你不懂handler
  9. ClassLoader使用记录《安卓高手之路》
  10. Android常用代码集合