基本排序算法

来源:互联网 发布:称重软件软件开发 编辑:程序博客网 时间:2024/05/12 12:14
  1. 冒泡排序

  该算法运行起来非常慢,但在概念上它是排序算法中最简单的,因此冒泡排序算法在刚开始研究排序技术时是一个非常好的算法。

int[] array = {3,5,8,11,99,33,77,66,100,1,32,29};        int temp;        //冒泡排序:由于比较的是相邻元素,所以最后一个元素可看作无相邻元素        for (int i = 0, len = array.length; i < len - 1; i++) {            for (int j = i + 1; j < len; j++) {                if (array[i] > array[j]) {                    temp = array[j];                    array[j] = array[i];                    array[i] = temp;                }            }        }

        2.  选择排序

  通过保存下标值,每次查找最小元素放到最左边

int[] array = {3,5,8,11,99,33,77,66,100,1,32,29};        int temp;            //选择排序,每次都查找最小值        for(int i = 0,len = array.length;i<len-1;i++){                    int min = i;            for(int j = i+1;j<len;j++){                            if(array[min]>array[j]){                                        min = j;                }            }            if(min != i){                temp = array[i];                array[i] = array[min];                array[min] = temp;            }        }

         3.  插入排序

      插入排序,是基本排序算法中最好的一种;一般情况下,要比冒泡排序快一倍,选择排序快上一些。

int[] array = {3,5,8,11,99,33,77,66,100,1,32,29};        int temp;                //插入排序,外层向右移动,内层向左排序        //外层每向右移动一个元素,就意味增加一个元素到内层进行排列        //由于内层想左,所以必须大于0        for(int i = 1,len = array.length;i<len;i++){            for(int j=i;j>0;j--){                if(array[j]<array[j-1]){                    temp = array[j-1];                    array[j-1] = array[j];                    array[j] = temp;                }                        }            }




0 0