数据结构与算法
slb18220570825
是一名大三学生,希望通多写博客提升自己的知识储备以及总结一些日常的问题
展开
-
插入排序-java
插入排序:从下标为i的元素向后开始遍历数组,如果当前元素小于前面[0,i-1]中的一个元素,则前面元素依次后移,将当前元素插入进去,完成排序。插入排序的时间复杂度为O(n^2)-----n个数,遍历n-1次 插入排序是稳定的,数值相等的元素不会位置发生交换package Asort;public class InsertSort { /* * 插入排序 ...原创 2018-08-05 21:30:52 · 117 阅读 · 0 评论 -
归并排序-java
归并排序:将数组中的n个元素,分成n个有序区间,然后将相邻的元素进行合并,组成n/2个有序区间 ,依次合并直到成一个有序区间结束。归并排序的时间复杂度为O(nlogn)----n个数遍历logn次(指数增长) 归并排序是稳定的排序算法package Asort;import java.util.Arrays;public class MergeSort { public...原创 2018-08-05 21:47:51 · 155 阅读 · 0 评论 -
冒泡排序-java
冒泡排序:这是一个经典的排序算法。通过遍历数组,相邻两个元素进行比较,每次将数值较大的元素排到后面。如果数组长度为n,则遍历n-1次得到有序数组。冒泡排序的时间复杂度为O(n^2)-----n个数,遍历n-1次 优化:添加一个标记,如果遍历数组中发生了交换,则标记为true;否则为false。如果某一趟没有发生交换,说明数组此时有序 冒泡排序是稳定的,因为数值相等的元素...原创 2018-08-01 21:56:59 · 189 阅读 · 0 评论 -
选择排序-java
选择排序:从数组中找一个最小值放到第一个位置,在后面n-1个位置选择一个最小值放到最后一个位置。。。具体:假设第一个值为数组中最小值min=i,遍历数组,如果后面元素有小于第一个记录的最小值,则将min=j;最后判断,如果min值发生改变,则交换下标为i与min的值。如果数组长度为n,则最多遍历n-1次得到有序数组。选择排序的时间复杂度为O(n^2)----n个数,遍历n-1次选择排序是稳...原创 2018-08-01 22:20:36 · 118 阅读 · 0 评论