冒泡排序选择排序插入排序
Posted 苏戏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序选择排序插入排序相关的知识,希望对你有一定的参考价值。
冒泡排序、选择排序、插入排序的实现
1 package helloworld; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 int[] a = { 11, 45, 44, 88, 22, 15, 9 }; 7 int temp = 0; 8 for (int i = 0; i < a.length - 1; i++) { 9 for (int j = 0; j < a.length - 1 - i; j++)// j开始等于0, 10 { 11 if (a[j] > a[j + 1]) { 12 temp = a[j]; 13 a[j] = a[j + 1]; 14 a[j + 1] = temp; 15 } 16 } 17 } 18 System.out.print("冒泡排序:"); 19 for (int i = 0; i < a.length; i++) { 20 System.out.print(a[i] + " "); 21 } 22 System.out.println(); 23 24 // 效率高于冒泡 25 int[] arr = { 11, 45, 44, 88, 22, 15, 9 }; 26 int k = 0; 27 int tmp = 0; 28 for (int i = 0; i < arr.length - 1; i++) { 29 k = i; 30 for (int j = i; j < arr.length; j++) { 31 if (arr[j] < arr[k]) { 32 k = j; 33 } 34 } 35 tmp = arr[i]; 36 arr[i] = arr[k]; 37 arr[k] = tmp; 38 } 39 System.out.print("选择排序:"); 40 for (int i = 0; i < arr.length; i++) { 41 System.out.print(arr[i] + " "); 42 } 43 System.out.println(); 44 45 //空间复杂度O(1)、时间复杂度O(n2) 46 int[] c = { 11, 45, 44, 88, 22, 15, 9 }; 47 int target; 48 for (int i = 1; i < c.length; i++) { 49 int j = i; 50 target = c[i]; 51 while (j > 0 && target < c[j - 1]) { 52 c[j] = c[j - 1]; 53 j--; 54 } 55 c[j] = target; 56 } 57 System.out.print("插入排序:"); 58 for (int i = 0; i < c.length; i++) { 59 System.out.print(c[i] + " "); 60 } 61 } 62 }
运行结果:
冒泡排序:9 11 15 22 44 45 88 选择排序:9 11 15 22 44 45 88 插入排序:9 11 15 22 44 45 88
以上是关于冒泡排序选择排序插入排序的主要内容,如果未能解决你的问题,请参考以下文章
排序算法学习(直接插入排序,希尔排序,选择排序,堆排序,冒泡排序)
[leetcode]排序算法(冒泡排序,选择排序,插入排序,快速排序,计数排序)
总结:大厂面试常考手撕代码 —— JavaScript排序算法(冒泡排序选择排序插入排序快速排序)
直接插入排序 ,折半插入排序 ,简单选择排序, 希尔排序 ,冒泡排序 ,快速排序 ,堆排序 ,归并排序的图示以及代码,十分清楚