教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

Jva培訓(xùn)之插入排序法

更新時(shí)間:2016年08月29日17時(shí)25分 來(lái)源:傳智播客Java培訓(xùn)學(xué)院 瀏覽次數(shù):

  思想:插入排序法的排序思想就是從數(shù)組的第二個(gè)元素開始,將數(shù)組中的每一個(gè)元素按照規(guī)則插入到已排好序的數(shù)組中以達(dá)到排序的目的.一般情況下將數(shù)組的第一個(gè)元素作為啟始元素,從第二個(gè)元素開始依次插入.由于要插入到的數(shù)組是已經(jīng)排好序的,所以只是要從右向左找到比插入點(diǎn)(下面程序中的insertNote)小(對(duì)升序而言)的第一個(gè)數(shù)組元素就插入到其后面.直到將最后一個(gè)數(shù)組元素插入到數(shù)組中,整個(gè)排序過(guò)程就算完成.
    穩(wěn)定性:穩(wěn)定的.
    時(shí)間復(fù)雜度:O(n2)
    實(shí)例:
import java.util.*;
class sorts
{
 public static void main(String[] args)
 {
  int[] arr= new int[]{800,9,3,6,12,54,35,411,3,245,1,0,4};
  sorts.InsertSort(arr);
 }
 public static int[] InsertSort(int[] arr)
 {
  int i,j;
  int insertNote;//要插入的數(shù)據(jù)
  int[] array=arr;
    
   //從數(shù)組的第二個(gè)元素開始循環(huán)將數(shù)組中的元素插入
  for (i=1;i<array.length;i++)
  {
   //設(shè)置數(shù)組中的第2個(gè)元素為第一次循環(huán)要播講的數(shù)據(jù)
   insertNote = array[i];
   j=i-1;
   while(j>=0&&insertNote<array[j])   
   {
    //如果要播講的元素小于第j個(gè)元素,就將第j個(gè)元素向后移動(dòng)
    array[j+1]=array[j];
    j--;
   }
   //直到要插入的元素不小于第j個(gè)元素,將insertNote插入到數(shù)組中
   array[j+1]=insertNote; 
  }
  //打印排序后的數(shù)組
  System.out.println(Arrays.toString(array));
  return array;
  
 }
}


本文版權(quán)歸傳智播客Java培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客Java培訓(xùn)學(xué)院
首發(fā):http://m.fskzgqt.cn/javaee
       
0 分享到:
和我們?cè)诰€交談!