天天看点

三种简单的排序算法

最简单的三种排序算法,分别是冒泡排序,选择排序,插入排序

在这里,主要用图去帮助记忆三种排序的具体操作

冒泡排序(从左到右,从上到下)

三种简单的排序算法
三种简单的排序算法
三种简单的排序算法
三种简单的排序算法
三种简单的排序算法

不变性:右边是有序的

代码:

public void bubbleSort(){
    	 int out, in;
    	 for(out = nElems-1; out > 0; out--)
    		 for(in = 0 ; in < out; in++)
    			 if(a[in]>a[in+1])
    				 swap(in,in+1);
    	 
     }
           

选择排序

三种简单的排序算法
三种简单的排序算法
三种简单的排序算法
三种简单的排序算法

不变性:最左边是有序的

代码:

public void selectionSort()
 {
	 int out,in,min;
	 for(out=0;out<=nElems-2;out++){
		 min = out;
		 for(in=out+1;in<=nElems-1;in++)
		 {
			 if(a[min] > a[in])
				 min = in;
		 }
		 swap(out,min);
	 }
 }
           

插入排序

三种简单的排序算法
三种简单的排序算法
三种简单的排序算法

不变性:左边局部有序

代码:

public void insertSort()
 {
	 int out,in;
	 for(out=1;out<=nElems-1;out++)
	 {
		 int temp = a[out];
		 for(in = out ;in>=1;in--)
		 {
			 if(a[in-1]>temp)
				 a[in] = a[in-1];
		 }
		 a[in] = temp;
	 }
 }