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