程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JAVA實現插入排序算法

JAVA實現插入排序算法

編輯:關於JAVA

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;
           }
        }
     }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved