冒泡排序选择排序插入排序

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排序算法(冒泡排序选择排序插入排序快速排序)

JavaScript算法(冒泡排序选择排序与插入排序)

直接插入排序 ,折半插入排序 ,简单选择排序, 希尔排序 ,冒泡排序 ,快速排序 ,堆排序 ,归并排序的图示以及代码,十分清楚