c#实现 数据结构排序算法
时间:2010-09-13 来源:Jasmines
- 插入排序
直接插入排序、希尔排序
- 选择排序
简单选择排序、堆排序
- 交换排序
冒泡排序、快速排序
- 归并排序
- 基数排序
1.冒泡排序

private void button1_Click(object sender, EventArgs e)
{
int[] iArray = new int[] { 1, 13, 6, 99, 2, 34, 47 };
Sortss(iArray);
for (int m = 0; m < iArray.Length; m++)
{
MessageBox.Show(iArray[m].ToString());
}
}
//冒泡排序算法
public void Sortss(int[] list)
{
int i, j, temp;
bool done = false;
j = 1;
while ((j < list.Length) && (!done))
{
done = true;
for (i = 0; i < list.Length - j; i++)
{
if (list[i] > list[i + 1])
{
done = false;
temp = list[i];
list[i] = list[i + 1];
list[i + 1] = temp;
}
}
j++;
}
}
---------------------------------------------------------------------------------------------
2.选择排序
每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
选择排序不像冒泡排序算法那样先并不急于调换位置,第一轮(k=1)先从array[k]开始逐个检查,看哪个数最小就记下该数所在的位置于minlIndex中,等一轮扫描完毕,如果找到比array[k-1]更小的元素,则把array[minlIndex]和a[k-1]对调,这时array[k]到最后一个元素中最小的元素就换到了array[k-1]的位置。 如此反复进行第二轮、第三轮…直到循环至最后一元素

private void button2_Click(object sender, EventArgs e)
{
int[] iArray = new int[] { 1, 13, 6, 99, 2, 34, 47 };
SelectionSort(iArray);
for (int m = 0; m < iArray.Length; m++)
{
MessageBox.Show(iArray[m].ToString());
}
}
//选择排序算法
private int min;
public void SelectionSort(int[] list)
{
for (int i = 0; i < list.Length - 1; i++)
{
min = i;
for (int j = i + 1; j < list.Length; j++)
{
if (list[j] < list[min])
{
min = j;
}
int temp = list[min];
list[min] = list[i];
list[i] = temp;
}
}
}
-----------------------------------------------------------------------------------------------
。。。。。未完待续。
相关阅读 更多 +