Java基础总结

来源:互联网 发布:广告法 数据来源 编辑:程序博客网 时间:2024/05/16 07:29
Java基础总结 - 数组排序之插入排序
这篇文章只是把大学记的笔记整理到博客,方便自己查看,不保证权威性(•̀ᴗ•́)و ̑̑
import java.util.Arrays;/** * 直接插入排序 * 概念是,假设将数字插入一个有序数列,当array[0]一个数字默认有顺序,然后把array[1]比较然后插入, * 再把array[2]插入array[0]、array[1]有序数列,插入一个数字之前数组默认就是有序了。 *  * @author CL-computer * */public class InsertSort {public static void main(String[] args) {int[] nums = {1,5,7,1,6,9,8,5};InsertSortMetohd(nums);System.out.println(Arrays.toString(nums));}public static void InsertSortMetohd(int[] nums) {for(int i = 0;i<nums.length;i++){for(int j=i;j>0;j--){if(nums[j-1]>nums[j]){int temp = 0;temp = nums[j];nums[j] = nums[j-1];nums[j-1] = temp;}else{break;}}}}}
/** * 希尔排序: * 是一种压缩增量的排序算法 * 这个增量现在大多数选择 数组长度的一半,但是这不是最好的。 *  * 第一次使用数组长度一半进行跳跃的比较排序, * 第二次使用数组长度一半的一半,直到gap等于1时数组就有序了 *  * 时间复杂度: n1.3 n n2 * 空间复杂度: 1 *  * @author CL-computer * */public class ShellSort {public static void main(String[] args) {int[] nums = {1,5,7,1,6,9,8,5};ShellSortMetohd(nums);System.out.println(Arrays.toString(nums));}public static void ShellSortMetohd(int[] nums) {for(int gap = nums.length/2;gap>0;gap/=2){for(int i =0;i<nums.length;i++){for(int j=i+gap;j<nums.length;j+=gap){if(nums[j]<nums[j-gap]){int temp = 0;temp = nums[j];nums[j] = nums[j-gap];nums[j-gap] = temp;}}}}}  }