算法描述

1.假定未排序序列中第一位为数组最小值,通过与后面的数值进行比较,找到未排序序列中最小值,与未排序序列第一位交换位置;

2.重复步骤一,对剩余未排序序列进行比较找出最小值,与未排序序列中第一位数值交换位置,直到数组所有数值排序完成;

代码实现

/*
例如:对数组:{ 2,7,6,3,1 }进行比较 第一轮:{ 1,7,6,3,2 } :共比较四次
第二轮:{ 1,2,6,3,7 } :共比较三次
第三轮:{ 1,2,3,6,7 } :共比较二次
第四轮:{ 1,2,3,6,7 } :共比较一次
*/
public void Select(int[] arr)
{
int temp;
int number;
int numIndex; bool flag; for (int i = ; i < arr.Length -; i++)
{
flag = true;
number = arr[i];
numIndex = i; for (int j = i + ; j < arr.Length; j++)
{
if (number > arr[j])
{
number = arr[j];
numIndex = j;
flag = false;
}
} temp = arr[i];
arr[i] = arr[numIndex];
arr[numIndex] = temp; if (flag == true)
{
break;
} Console.Write("选择排序:");
foreach (int item in arr)
{
Console.Write(item + " ");
}
Console.WriteLine(); }
}

完整代码

using System;

namespace SelectSortApplication
{
class Program
{
static void Main(string[] args)
{
var setArray = new SetArray();
var selectSort = new SelectSort(); int[] arr = setArray.GetArray();
selectSort.Select(arr); Console.ReadLine();
}
} class SetArray
{
public int[] GetArray()
{
int length;
int[] arr; Console.WriteLine("请输入数组长度:");
length = Convert.ToInt32(Console.ReadLine()); arr = new int[length]; for (int i = ; i <= length -; i++)
{
Console.Write("请输入数组第{0}位数值:", i);
arr[i] = Convert.ToInt32(Console.ReadLine());
} Console.Clear(); Console.Write("arr[] = {");
foreach (int item in arr)
{
Console.Write(item + " ");
}
Console.Write("}\n");
return arr;
}
} class SelectSort
{
public void Select(int[] arr)
{
int temp;
int number;
int numIndex; bool flag; for (int i = ; i < arr.Length -; i++)
{
flag = true;
number = arr[i];
numIndex = i; for (int j = i + ; j < arr.Length; j++)
{
if (number > arr[j])
{
number = arr[j];
numIndex = j;
flag = false;
}
} temp = arr[i];
arr[i] = arr[numIndex];
arr[numIndex] = temp; if (flag == true)
{
break;
}
}
Console.Write("选择排序:");
foreach (int item in arr)
{
Console.Write(item + " ");
}
Console.WriteLine();
}
}
}

最新文章

  1. sys.dm_os_waiting_tasks 引发的疑问(中)
  2. 苹果全新 Mac OS X 系统开放下载
  3. PCM-脉码调制
  4. Cookie的使用与实现记住用户名案例
  5. MVC两个必懂核心
  6. ESXI
  7. 人生规划和GTD——“知”、“得”与“合”
  8. (CodeForces 558C) CodeForces 558C
  9. 现在再开发一个CMS系统还有市场吗?
  10. Peter&amp;#39;s Hobby
  11. 快看Sample代码,速学Swift语言(1)-语法速览
  12. EBS财务模块表结构
  13. View控件跟随鼠标移动
  14. Python并发编程二(多线程、协程、IO模型)
  15. 关于各种算法以及好的blog的整理(持续更新)
  16. Hopfield神经网络和TSP问题
  17. php获取ios或android通过文件头(header)传过来的坐标,通过百度接口获取具体城市和地址,并存入到session中。
  18. Qt Creator 下启动vim模式后,运行快捷键Ctrl+R失效解决方案
  19. 【bzoj1594-猜数游戏】线段树
  20. 几何画板给word绘制图形的方法

热门文章

  1. Android requestWindowFeature(Window.FEATURE_NO_TITLE)无效解决方法
  2. Linux 配置 nginx + php
  3. ThinkPHP---thinkphp拓展之空操作
  4. (转)MySQL中的索引详讲
  5. selenium爬虫设置headers,代理IP等方法
  6. HDU - 2050 - 折线分割平面(数学 + dp)
  7. C/C++学习)22.QTcpServer、QTcpSocket、QUdpSocket使用
  8. [Algorithm] 8. Rotate String
  9. cookie的原理
  10. Jmeter使用笔记之断言