十种经典的排序算法C#实现(持续更新ing)
来源:互联网 发布:嘉兴微知电子有限公司 编辑:程序博客网 时间:2024/06/05 23:42
参考网络及其他书籍自己敲的,经验证通过
/********选择排序********/
using System;using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace selectsort
{
class Program
{
static void Main(string[] args)
{
//选择排序
//定义并初始化要排序的元素数组
int[] sortnumbers = { 2, 5, 9, 11, 65, 37, 28, 96, 55 };
int i = 0;
//for循环,找参考元素
for (i = 0; i < sortnumbers.Length-1; i++) {
int min=i;
//for循环,依次与参考元素比较大小,找出最小的放到最前边
for (int j = i + 1; j < sortnumbers.Length; j++) {
if (sortnumbers[j] < sortnumbers[min])
min = j;
}
//交换元素
int temp = sortnumbers[min];
sortnumbers[min] = sortnumbers[i];
sortnumbers[i] = temp;
}
//for循环输出排好的元素
for (i = 0; i < sortnumbers.Length; i++) {
Console.Write( "{0,7}",sortnumbers[i]);
}
Console.Read();
}
}
}
/***** 冒泡排序 ******/
namespace bubblesort1
{
class Program
{
static void Main(string[] args)
{
//定义并初始化数组
int[] sortnumbers = { 2, 5, 53, 92, 44, 30, 11, 105, 73, 88, 25 };
int i = 0;
//for循环控制范围
for (i = 0; i < sortnumbers.Length-1; i++) {
//for循环进行交换
for (int j = 0; j < sortnumbers.Length - 1 - i; j++) {
//判断j+1元素是否大于j元素,是交换位置
if (sortnumbers[j + 1] < sortnumbers[j]) {
//实际交换元素
int temp = sortnumbers[j + 1];
sortnumbers[j + 1] = sortnumbers[j];
sortnumbers[j] = temp;
}
}
}
//for循环输出
for (i = 0; i < sortnumbers.Length; i++) {
Console.Write("{0,5}", sortnumbers[i]);
}
Console.Read();
}
}
}
/***********************************************************************************/
/******* 插入排序* *********/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace insertsort1
{
class Program
{
static void Main(string[] args)
{
//插入排序
int[] sortnumbers = { 9, 4, 5, 12, 63, 35, 97, 42, 15, 11, 105, 80 };
int i = 0;
for (i = 0; i < sortnumbers.Length; i++) {
int temp = sortnumbers[i];
int j = i;
while (j > 0 && sortnumbers[j-1] > temp) {
sortnumbers[j] = sortnumbers[j - 1];
j--;
}
sortnumbers[j] = temp;
}
for (i = 0; i < sortnumbers.Length; i++) {
Console.Write("{0,4}", sortnumbers[i]);
}
Console.Read ();
}
}
}
/**************************************************************************************/
/*******希尔排序 ********/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace insertsort1
{
class Program
{
static void Main(string[] args)
{
//希尔排序
int[] sortnumbers = { 9, 4, 5, 12, 63, 35, 97, 42, 15, 11, 105, 80 };
int i = 0, gap = sortnumbers.Length / 2;
while (gap >0)
{
for (i = gap; i < sortnumbers.Length; i++) {
int temp = sortnumbers[i];
int j = i-gap;
while ( j >= 0 && sortnumbers[j] > temp)
{
sortnumbers[j+gap] = sortnumbers[j];
j -= gap;
}
sortnumbers[j+gap] = temp;
}
gap /= 2;
}
for (i = 0; i < sortnumbers.Length; i++)
{
Console.Write("{0,4}", sortnumbers[i]);
}
Console.Read();
}
}
}
/*****************************************************************************************/
/********快速排序 *******/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace quicksort
{
class Program
{
static void Main(string[] args)
{
int[] array = { 5, 4, 2, 89, 36, 6 };
Sort(array, 0, array.Length - 1);
for (int i = 0; i < array.Length;i++ )
Console.WriteLine(array[i]);
Console.Read();
}
public static void Sort(int[] array,int left,int right){
int i,j,temp;
if(left>right)
return ;
i = left;
j = right;
temp = array[left];
while (i != j) {
while (array[j] >= temp && i < j)
j--;
while (array[i] <= temp && i < j)
i++;
if (i < j) {
int t = array[i];
array[i] = array[j];
array[j] = t;
}
}
array[left] = array[i];
array[i] = temp;
Sort(array,left,i-1);
Sort(array,i+1,right);
}
}
}
/***********************************************************************/
0 0
- 十种经典的排序算法C#实现(持续更新ing)
- 经典排序算法代码实现(持续更新... 求补充)
- 十一种排序算法整理(JAVA实现,持续更新中)
- 经典排序算法综述 持续更新中
- 11种常见排序算法总结(更新ING...)
- JavaScript实现十种经典排序算法(js排序算法)
- C#实现所有经典的排序算法
- 常见排序算法的C语言实现以及算法复杂度分析(持续更新)
- C#编程之经典算法——排序(十)
- 十种经典排序算法
- 一些有趣的网站(持续更新ing)
- 学习安卓时犯下的错误总结(持续更新ing)
- 十大经典排序算法的 JavaScript 实现
- 十大经典排序算法的 JavaScript 实现
- 十大经典排序算法的 JavaScript 实现
- 十大经典排序算法的 JavaScript 实现
- C#实现经典排序算法
- 排序算法(持续更新...)
- hadoop下运行WordCout单词计数抛出错误
- [151023][枕]櫻之詩 在櫻花之森上飛舞[サクラノ诗-樱の森の上を舞う-]【日文硬盘版】[带全CG存档+攻略]
- Java:排序法(从大到小)和二分查找法(找某个值的索引号)
- 用flask开发个人博客(16)—— 表单类的使用
- PHP框架---配置加载类&&日志类
- 十种经典的排序算法C#实现(持续更新ing)
- MariaDB简单CURD实践
- 【框架】pinyin4j中文汉字转化为拼音
- 浅谈 C++ 中的 new/delete 和 new[]/delete[]
- 代码优化>>>Android ListView适配器三级优化详解
- 产品的需求分析
- 在myeclipse10环境下,用hibernate反向生成工具生成pojo文件,并自动按照模板文件添加注释
- 图解Linux命令之--mkdir命令
- QT widget窗体常用属性介绍