1.冒泡排序
冒泡排序算法的运作如下:
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
public static void main(String[] args) { int[] nums = { 12, 123, 34, 15, 17 }; //定义一个数组 System.out.println("排序前的数组:"); for (int num : nums) { System.out.print(num + " "); } //循环次数为数组长度减1 for (int i = 0; i < nums.length - 1; i++) { //相邻两数的比较次数 for (int j = 0; j < nums.length - 1 - i; j++) { //比较数组中的相邻两个数 if (nums[j] > nums[j + 1]) { //交换两个数 int temp; temp = nums[j]; nums[j] = nums[j + 1]; nums[j + 1] = temp; } } } System.out.println(); System.out.println("排序后的数组:"); for (int num : nums) { System.out.print(num + " "); }
2.插入算法
主要思想:插入排序法的排序思想就是从数组的第二个元素开始,将数组中的每一个元素按照规则插入到已排好序的数组中以达到排序的目的.一般情况下将数组的第一个元素作为启始元素,从第二个元素开始依次插入.由于要插入到的数组是已经排好序的,所以只是要从左向右找到插入点(对升序而言),其余元素依次向后移动一位,然后输出插入后的数组。
int[] nums = new int[6]; nums[0] = 10; nums[1] = 20; nums[2] = 40; nums[3] = 70; nums[4] = 100; Scanner input = new Scanner(System.in); System.out.println("请输入一个数字:"); int a = input.nextInt(); int dex = -1; for (int i = 0; i < nums.length; i++) { if (a < nums[i]) { dex = i; break; } } for (int i = nums.length - 1; i > dex; i--) { nums[i] = nums[i - 1]; } nums[dex] = a; for (int num : nums) { System.out.print(num + " "); }