基础的排序

143 阅读1分钟
  1. 选择排序

     public void ChoP(int[] a)  //选择排序
    {
     int lens = a.length;
     int temp;
     for(int i=0;i<lens;i++)
     	for(int j=i+1;j<lens;j++)
     	{
     		if(a[i]>a[j])//和剩下的比较
     		{
     			temp=a[i];
     			a[i]=a[j];
     			a[j]=temp;
     		}
     	}
     }
    

    选择排序就是一个个的比较,选择剩下之中最小的一个排在前面。

  2. 冒泡排序

    public void MoO(int[] a)//冒泡排序
     {
     int lens = a.length;
     int temp;
     for(int i=0;i<lens;i++)
     	for(int j=0;j<lens-i-1;j++)
     	{
     		if(a[j]>a[j+1])//相邻比较
     		{
     			temp=a[j];
     			a[j]=a[j+1];
     			a[j+1]=temp;
     		}
     	}
     	
     }
    

    冒泡排序就是每两个比较(相邻两个),数值大的往下沉,也就是小的往上升

  3. 插入排序

    public void direct(int[] a)
    {
     int lens=a.length;
     int flag;
     for(int i=1;i<lens;i++){  //插入a[i]
     	flag=a[i]; //插入元素的值
     	int j=i-1; //a[i]前一个的值
     	while(j>=0 && a[j]>a[i]){ //比最后一项小则执行
     		a[j+1]=a[j];  //元素后移
     		j--;
     	}
     	a[j+1]=flag;
     }
     
    }
    

    插入排序,意思就是在已排好的数组中,插入一个数后还是排好序的。从后往前比较,比它大的就继续往后挪一位,在比它小的后一位或者到最前面的时候停下插入。