1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<code>public</code> <code>class</code> <code>InsertSort</code>
<code>{</code>
<code> </code><code>public</code>
<code>static</code> <code>void</code> <code>sort(</code><code>int</code><code>[] a)</code>
<code> </code><code>{</code>
<code> </code><code>int</code>
<code>N = a.length;</code>
<code>count =</code><code>0</code><code>;</code>
<code> </code><code>for</code>
<code>(</code><code>int</code> <code>i =</code><code>1</code><code>; i < N; i++) </code><code>// 如果只有一个元素, i < N 就不会成立,for循环就不执行</code>
<code> </code><code>{</code>
<code> </code><code>for</code>
<code>(</code><code>int</code> <code>j = i; j ></code><code>0</code><code>; j--)</code>
<code> </code><code>{</code>
<code> </code><code>if</code>
<code>(a[j] < a[j-</code><code>1</code><code>])</code>
<code> </code><code>{</code>
<code> </code><code>int</code>
<code>temp =</code><code>0</code><code>;</code>
<code> </code><code>temp = a[j];</code>
<code> </code><code>a[j] = a[j-</code><code>1</code><code>];</code>
<code> </code><code>a[j-</code><code>1</code><code>] = temp;</code>
<code> </code><code>count++;</code>
<code> </code><code>}</code>
<code> </code><code>} </code>
<code> </code><code>}</code>
<code> </code>
<code>(</code><code>int</code> <code>i =</code><code>0</code><code>; i < N; i++)</code>
<code> </code><code>System.out.print(a[i] +</code><code>" "</code><code>);</code>
<code> </code><code>System.out.println(</code><code>"count = "</code>
<code>+ count);</code>
<code> </code><code>}</code>
<code> </code>
<code>static</code> <code>void</code> <code>main(String[] args)</code>
<code> </code><code>int</code><code>[] a = {</code><code>6</code><code>,</code><code>2</code><code>,</code><code>5</code><code>,</code><code>3</code><code>,</code><code>1</code><code>,</code><code>4</code><code>};</code>
<code> </code><code>InsertSort.sort(a);</code>
<code>}</code>
运算过程: