- 插入排序
直接插入排序、希尔排序
- 选择排序
简单选择排序、堆排序
- 交换排序
冒泡排序、快速排序
- 归并排序
- 基数排序
1.冒泡排序
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
//
点击按纽调用冒泡排序算法
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 ++ ;
}
}
---------------------------------------------------------------------------------------------
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]的位置。 如此反复进行第二轮、第三轮…直到循环至最后一元素
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
//
点击按纽调用选择排序算法
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;
}
}
}
-----------------------------------------------------------------------------------------------
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;
}
}
}
-----------------------------------------------------------------------------------------------
。。。。。未完待续。