插入排序演算法的JAVA實現 .

來源:互聯網
上載者:User

package Utils.Sort;

/**

*插入排序,要求待排序的數組必須實現Comparable介面

*/

public class InsertSort implements SortStrategy

{

       /**

       *利用插入排序演算法對obj進行排序

       */

       public void sort(Comparable []obj)

       {

              if (obj == null)

              {

                     throw new NullPointerException("The argument can not be null!");

              }

              /*

              *對數組中的第i個元素,認為它前面的i - 1個已經排序好,然後將它插入到前面的i - 1個元素中

              */

              int size = 1;

              while (size < obj.length)

              {

                     insert(obj, size++, obj[size - 1]);

              }

       }

       /**

       *在已經排序好的數組中插入一個元素,使插入後的數組仍然有序

       *@param obj 已經排序好的數組

       *@param size 已經排序好的數組的大小

       *@param c 待插入的元素

       */

       private void insert(Comparable []obj, int size, Comparable c)

       {

              for (int i = 0 ;i < size ;i++ )

              {

                     if (c.compareTo(obj[i]) < 0)

                     {

                            System.out.println(obj[i]);

                            //如果待插入的元素小於當前元素,則把當前元素後面的元素依次後移一位

                            for (int j = size ;j > i ;j-- )

                            {

                                   obj[j] = obj[j - 1];

                            }

                            obj[i] = c;

                            break;

                     }

              }

       } }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.