基础排序算法:冒泡排序、选择排序、插入排序,复杂度O(n^2)算法
冒泡排序思想:一个数组的元素每次通过一趟值比较直接筛选出最值元素到目标位置,而后在待筛选的元素中继续筛选,这样形成的结果就是最值元素上浮,称为向上冒泡 核心代码:数组
for(int i=0;i<array.length;i++){ //相邻元素比较筛选最值元素,放置在整个数组的结尾 for(int j=0;j<array.length-1-i;j++){ if(array[j]>array[j+1]){ int temp = array[j]; array[j] = array[j+1]; array[j+1] = temp; } } }
选择排序思想:每一趟从带选择元素中选出最终元素,并将元素取出放到已排序的元素集合code
for(int i=0; i<array.length;i++){ int index = i; //从待筛选的元素集合选出最小的元素放置在index = i位置 for(int j=i+1;j<array.length;j++){ if(array[j]<array[index]){ index = j; } } int temp = array[i]; array[i] = array[index]; array[index] = temp; }
直接插入排序思想:每一趟排序将待筛选的元素和已造成的有序元素集合比较,直接插入到对应的位置,有序元素集合中大于指定元素向后移动一位,为指定元素插入目标位置腾出空间排序
for(int i=1;i<array.length;i++){ int temp = array[i]; int j=0; //将目标元素和有序元素集合比较,并进行对应的移位操做 for(j= i-1;j>=0;j--){ if(array[j]>temp){ array[j+1] = array[j]; }else{ break; } } array[j+1] = temp; }