Java學習手冊 (資料結構與演算法 排序)插入排序

2021-09-19 04:21:00 字數 621 閱讀 5150

演算法思想:在乙個已排好序的記錄子集的基礎上,每一步將下乙個待排序的記錄有序地插入到已排好序的記錄子集中,直到將所有待排序記錄全部插入為止。

例子:舉個栗子,對5,3,8,6,4這個無序序列進行簡單插入排序,首先假設第乙個數的位置時正確的,想一下在拿到第一張牌的時候,沒必要整理。然後3要插到5前面,把5後移一位,變成3,5,8,6,4.想一下整理牌的時候應該也是這樣吧。然後8不用動,6插在8前面,8後移一位,4插在5前面,從5開始都向後移一位。注意在插入乙個數的時候要保證這個數前面的數已經有序。簡單插入排序的時間複雜度也是o(n^2)。

package com.haobi;

/* * 插入排序(公升序)

* 1、使用temp臨時儲存待插入記錄

* 2、從後往前查詢應插入的位置

* 3、查詢與移動在同一迴圈中完成

* */

public class insertsort

}a[j] = temp;//將待插入的資料插入

}} }

public static void main(string args) ;

insertsort(array);

for(int i=0;i程式輸出結果如下:

5 6 7 24 64 89 

Java學習手冊 (資料結構與演算法 排序)選擇排序

演算法思想 對於一組資料,經過第一次排序得到最小的記錄,然後將該記錄與第乙個記錄的位置進行交換 接著對不包括第乙個記錄的其他記錄進行第二輪比較,得到最小的記錄並與第二個記錄進行位置交換 重複該操作,直至進行比較的記錄只有乙個。例子 舉個栗子,對5,3,8,6,4這個無序序列進行簡單選擇排序,首先要選...

Java學習手冊 (資料結構與演算法 排序)歸併排序

演算法思想 歸併排序是用遞迴和分治方法將資料序列劃分為越來越小的半子表,再對半子表排序,最後再用遞迴方法將排好序的半子表合併為越來越大的有序序列。package com.haobi 歸併排序 public class mergesort public static void merge int ar...

Java資料結構與演算法

1.1 概念資料結構主要是研究程式設計問題中計算機的操作物件以及它們之間的關係和操作的學科。1.2 分類儲存結構 存在於計算機世界的物理層面 邏輯結構 一種是資料結構的邏輯層面 1.3 按照資料元素分類線性 存在於計算機世界的物理層面 非線性 一種是資料結構的邏輯層面 1.4 集合結構只考慮資料元素...