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

2021-09-19 04:34:15 字數 540 閱讀 6958

演算法思想:對於一組資料,經過第一次排序得到最小的記錄,然後將該記錄與第乙個記錄的位置進行交換;接著對不包括第乙個記錄的其他記錄進行第二輪比較,得到最小的記錄並與第二個記錄進行位置交換;重複該操作,直至進行比較的記錄只有乙個。

例子:舉個栗子,對5,3,8,6,4這個無序序列進行簡單選擇排序,首先要選擇5以外的最小數來和5交換,也就是選擇3和5交換,一次排序後就變成了3,5,8,6,4.對剩下的序列一次進行選擇和交換,最終就會得到乙個有序序列。其實選擇排序可以看成氣泡排序的優化,因為其目的相同,只是選擇排序只有在確定了最小數的前提下才進行交換,大大減少了交換的次數。選擇排序的時間複雜度為o(n^2)。

package com.haobi;

/* * 選擇排序

*/public class selectsort {

public static void selectsort(int array) {

int temp = 0;

int flag = 0;

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

5 6 7 24 64 89 

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

演算法思想 在乙個已排好序的記錄子集的基礎上,每一步將下乙個待排序的記錄有序地插入到已排好序的記錄子集中,直到將所有待排序記錄全部插入為止。例子 舉個栗子,對5,3,8,6,4這個無序序列進行簡單插入排序,首先假設第乙個數的位置時正確的,想一下在拿到第一張牌的時候,沒必要整理。然後3要插到5前面,把...

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

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

Java資料結構與演算法

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