您的位置:首页 > 编程语言 > C#

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

转自“快速排序”百科
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: