日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java里怎么存入数据并进行排序_Java数据结构之排序---插入排序

發布時間:2025/3/15 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java里怎么存入数据并进行排序_Java数据结构之排序---插入排序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

插入排序的基本介紹:

插入排序是對想要排序的序列以插入的方式尋找該元素的適當的位置,從而達到排序的目的。

插入排序的基本思想:

把n個待排序的元素看成一個有序表和一個無序表,開始時,有序表只有一個元素(整個序列的第一個元素看成有序表的第一個元素),無序表中有n-1個元素,在接下來的排序過程中,每次從無序表中取出一個元素,將它依次與有序表中的元素進行比較(注意:與有序表中元素比較的順序是從后向前),將它插入到有序表中的適當的位置,使其成為新的有序表。

插入排序的基本思路圖:

接下來,我會通過代碼講述插入算法的實現過程,也會通過兩種方式進行講解:分步驟的實現,整體的實現。具體的解釋,我將在代碼的注釋中進行標注。

(1).分步驟的實現

public static void main(String[] args) {

// TODO Auto-generated method stub

int[] arr = {101,34,119,1};

insertSort(arr);

}

//直接插入排序

public static void insertSort(int[] arr){

//第一趟排序

//因為我們第一個元素是有序表中的元素,因此我們在從無序表中取第一個元素的時候(索引為1),應該讓其與它前一個元素進行比較。

//所以我們要比較元素的索引值應該是1-1=0

//之后我們將帶排序的元素賦值給insertVal(因為是第一躺,所以是arr[1])

int insertIndex = 1-1;

int insertVal = arr[1];

//這里面我們通過insertIndex>=0來限制數組越界

//并且當我們插入的元素小于它之前的元素時,執行該循環

while(insertIndex>=0 && insertVal

//將有序列表中的元素后移

arr[insertIndex+1] = arr[insertIndex];

//當進行比較的時候,說明現在insertIndex位置的元素已經比我們待插入的元素大了,這個時候我們應該將insertIndex向前移動一位繼續比較,

//一直到insertIndex<0(待插入元素最小)或者找到一個比待插入元素小的數為止

insertIndex--;

}

//這里注意的是insertIndex+1,因為經過上述insertIndex--,我們最終得到的insertIndex比我們待插入的值少1,因此下面我們要加1,之后把insertVal插入進去。

arr[insertIndex+1] = insertVal;

System.out.println("第一趟排序的結果:");

System.out.println(Arrays.toString(arr));

//第二趟排序

insertIndex = 2-1;

insertVal = arr[2];

while(insertIndex>=0 && insertVal

arr[insertIndex+1] = arr[insertIndex];

insertIndex--;

}

arr[insertIndex+1] = insertVal;

System.out.println("第二趟排序的結果:");

System.out.println(Arrays.toString(arr));

//第三趟排序

insertIndex = 3-1;

insertVal = arr[3];

while(insertIndex>=0 && insertVal

arr[insertIndex+1] = arr[insertIndex];

insertIndex--;

}

arr[insertIndex+1] = insertVal;

System.out.println("第三趟排序的結果:");

System.out.println(Arrays.toString(arr));

}

上述代碼最終的結果如下所示:

(2).整體的代碼實現

public static void main(String[] args) {

// TODO Auto-generated method stub

int[] arr = {101,34,119,1};

insertSort(arr);

}

//直接插入排序

public static void insertSort(int[] arr){

//直接插入排序

//通過上面的步驟,我們知道執行插入排序我們只需要每次改變i的值即可。

//因此整體的代碼如下

for(int i=1;i

int insertVal = arr[i];

int insertIndex = i-1;

while(insertIndex>=0 && insertVal

arr[insertIndex+1] = arr[insertIndex];

insertIndex--;

}

arr[insertIndex+1] = insertVal;

System.out.println("第"+i+"趟的排序:");

System.out.println(Arrays.toString(arr));

}

}

上述代碼的最終結果如下:

總結

以上是生活随笔為你收集整理的java里怎么存入数据并进行排序_Java数据结构之排序---插入排序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。