c#实现 数据结构排序算法

  • 插入排序

直接插入排序、希尔排序

  • 选择排序

简单选择排序、堆排序

  • 交换排序

冒泡排序、快速排序

  • 归并排序
  • 基数排序

 

1.冒泡排序

 

 

代码
      //点击按纽调用冒泡排序算法
        private void button1_Click(object sender, EventArgs e)
        {
            
int[] iArray = new int[] { 11369923447 };
            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[] { 11369923447 };
            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;
                }
            }

        }

-----------------------------------------------------------------------------------------------

 

 

。。。。。未完待续。

 

posted @ 2010-09-13 17:38  Jasmines  阅读(370)  评论(0编辑  收藏  举报