C#
2015-10-19 13:55
351 查看
冒泡排序:
int [ ] array ={78,12,45,67,13,89,10}
for(i=0;i<array.length-1;i++)
{
for(j=0;j<array.length-1;i++)
{
if(array[j]<array[j+1])
{
int temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
for(i=0;i<array.length;i++)
{
Console.WriteLIne(array[i]);
}
}
快速排序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test
{
class QuickSort
{
static void Main(string[] args)
{
int[] array = { 49, 38, 65, 97, 76, 13, 27 };
sort(array, 0, array.Length - 1);
Console.ReadLine();
}
/**一次排序单元,完成此方法,key左边都比key小,key右边都比key大。
**@param array排序数组
**@param low排序起始位置
**@param high排序结束位置
**@return单元排序后的数组 */
private static int sortUnit(int[] array, int low, int high)
{
int key = array[low];
while (low < high)
{
/*从后向前搜索比key小的值*/
while (array[high] >= key && high > low)
--high;
/*比key小的放左边*/
array[low] = array[high];
/*从前向后搜索比key大的值,比key大的放右边*/
while (array[low] <= key && high > low)
++low;
/*比key大的放右边*/
array[high] = array[low];
}
/*左边都比key小,右边都比key大。//将key放在游标当前位置。//此时low等于high */
array[low] = key;
foreach (int i in array)
{
Console.Write("{0}\t", i);
}
Console.WriteLine();
return high;
}
/**快速排序
*@paramarry
*@return */
public static void sort(int[] array, int low, int high)
{
if (low >= high)
return;
/*完成一次单元排序*/
int index = sortUnit(array, low, high);
/*对左边单元进行排序*/
sort(array, low, index - 1);
/*对右边单元进行排序*/
sort(array, index + 1, high);
}
}
}
运行结果:27 38 13 49 76 97 65
13 27 38 49 76 97 65
13 27 38 49 65 76 97
转自“快速排序”百科
int [ ] array ={78,12,45,67,13,89,10}
for(i=0;i<array.length-1;i++)
{
for(j=0;j<array.length-1;i++)
{
if(array[j]<array[j+1])
{
int temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
for(i=0;i<array.length;i++)
{
Console.WriteLIne(array[i]);
}
}
快速排序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace test
{
class QuickSort
{
static void Main(string[] args)
{
int[] array = { 49, 38, 65, 97, 76, 13, 27 };
sort(array, 0, array.Length - 1);
Console.ReadLine();
}
/**一次排序单元,完成此方法,key左边都比key小,key右边都比key大。
**@param array排序数组
**@param low排序起始位置
**@param high排序结束位置
**@return单元排序后的数组 */
private static int sortUnit(int[] array, int low, int high)
{
int key = array[low];
while (low < high)
{
/*从后向前搜索比key小的值*/
while (array[high] >= key && high > low)
--high;
/*比key小的放左边*/
array[low] = array[high];
/*从前向后搜索比key大的值,比key大的放右边*/
while (array[low] <= key && high > low)
++low;
/*比key大的放右边*/
array[high] = array[low];
}
/*左边都比key小,右边都比key大。//将key放在游标当前位置。//此时low等于high */
array[low] = key;
foreach (int i in array)
{
Console.Write("{0}\t", i);
}
Console.WriteLine();
return high;
}
/**快速排序
*@paramarry
*@return */
public static void sort(int[] array, int low, int high)
{
if (low >= high)
return;
/*完成一次单元排序*/
int index = sortUnit(array, low, high);
/*对左边单元进行排序*/
sort(array, low, index - 1);
/*对右边单元进行排序*/
sort(array, index + 1, high);
}
}
}
运行结果:27 38 13 49 76 97 65
13 27 38 49 76 97 65
13 27 38 49 65 76 97
转自“快速排序”百科
相关文章推荐
- C#中使用ListView动态添加数据不闪烁
- C#文件写入
- C#时间戳
- C#委托的介绍(delegate、Action、Func、predicate)
- C#学习日记26---接口(interface)类型
- 使用C#和Thrift来访问Hbase实例
- C#基础巩固(2)-Linq To XML创建XML
- C# 5.0 与 .Net 4.5 学习(一)Race Conditions资源竞争
- C#可以自动在后台为属性创建字段
- C#.NET里面抽象类和接口有什么区别
- 利用序列化的方式实现C#深复制和浅复制
- C#线程并发执行的实例[转]
- C# 可否对内存进行直接的操作?
- c#子线程调用主线程控件
- AX2009 C#客户端通过Web service批量审核工作流(一)
- (原创)c#学习笔记03--变量和表达式04--表达式04--命名空间
- 猴子选大王——CSharp数组
- C#面向对象设计模式纵横谈——3.Abstract Factory 抽象工厂(创建型模式)
- C#读写(OFFICE 2013)excel表格(续)
- (原创)c#学习笔记03--变量和表达式04--表达式03--运算符的优先级