排序算法

直接排序算法

将数组中的元素依次与之前的元素相比较,如果该元素小于前面的元素,则两者调换位置。时间复杂度为O(n2

        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < i; j++){
                if (array[i]<array[j]){
                    int temp = array[i];
                    array[i] = array[j];
                    array[j] = temp;
                }
            }
        }

 

 

简单选择排序算法

  • 从待排序序列中找到最小元素
  • 如果该元素不是第一个元素则与第一个元素交换位置
  • 从余下的元素中找到最小的元素,重复前两个步骤

时间复杂度为O(n2

        for (int i = 0; i < array.length; i++) {
            for(int j = i+1; j < array.length; j++){
                if (array[j]<array[i]){
                    int temp = array[j];
                    array[j] = array [i];
                    array[i] = temp;
                }
            }
        }

 

冒泡排序

  • 相邻两个元素依次比较,保证右边元素大于左边。比较完可保证最后的元素最大。
  • 去除最后一位重复第一步。

时间复杂度为O(n2

        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j<array.length-i;j++){
                if (array[j]>array[j+1]){
                    int temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = array[j];
                }
            }
        }
        return array;

  

posted @ 2020-03-11 13:46  xxcnotes  阅读(115)  评论(0)    收藏  举报