java演算法篇 插入排序和選擇排序演算法

2021-07-25 16:28:55 字數 1350 閱讀 8849

假設我們輸入的是 「5,1,4,2,3」 我們從第二個數字開始,這個數字是1,我們的任務只要看看1有沒有正確的位置,我們的做法是和這個數字左邊的數字來比,因此我們比較1和5,1比5小,所以我們就交換1和5,原來的排列就變成了「1,5,4,2,3 」

接下來,我們看第3個數字有沒有在正確的位置。這個數字是4,它的左邊數字是5,4比5小,所以我們將4和5交換,排列變成了 「1,4,5,2,3 "我們必須繼續看4有沒有在正確的位置,4的左邊是1,1比4小,4就維持不動了。

再來看第四個數字,這個數字是2,我們將2和它左邊的數字相比,都比2大,所以就將2一路往左移動,一直移到2的左邊是1,這時候排序變成了 「1,2,4,5,3 」

最後,我們檢查第五個數字,這個數字是3,3必須往左移,一直移到3的左邊是2為止,所以我們的排列就變成了 「1,2,3,4,5 」排序因此完成了。

所謂插入排序法,就是檢查第i個數字,如果在它的左邊的數字比它大,進行交換,這個動作一直繼續下去,直到這個數字的左邊數字比它還要小,就可以停止了。插入排序法主要的迴圈有兩個變數:i和j,每一次執行這個迴圈,就會將第i個數字放到左邊恰當的位置去。

**實現:

package com.zc.manythread;

/** * 插入排序

* @author 偶my耶

* */

public class insertionsort

data[j] = temp;}}

}public static void main(string args) ;

insertion_sort(data);

for (int i = 0; i < data.length; i++)

}}

選擇排序

選擇排序是一類借助「選擇」 進行排序的方法。其主要思想是:沒趟排序在當前排序序列中選出關鍵碼最小的記錄,天機到有序序列中。選擇排序比較獨特的地方是:記錄的移動次數少。

選擇排序源**:

package com.zc.manythread;

/** * 選擇排序

* @author administrator

* */

public class selectsort {

/*** 快速排序

* @param date

* @return

*/int selectsort(int date){

for (int i = 0; i < date.length-1; i++) {

int index=i;

for (int j = i+1; j < date.length; j++) {

if (date[j]

部落格版權:

演算法篇 插入排序和選擇排序演算法

假設我們輸入的是 5,1,4,2,3 我們從第二個數字開始,這個數字是1,我們的任務只要看看1有沒有正確的位置,我們的做法是和這個數字左邊的數字來比,因此我們比較1和5,1比5小,所以我們就交換1和5,原來的排列就變成了 1,5,4,2,3 接下來,我們看第3個數字有沒有在正確的位置。這個數字是4,...

Java排序演算法之氣泡排序 插入排序 選擇排序

一 前言 排序是日常中最常見的一種演算法,常見的演算法有 氣泡排序 插入排序 選擇排序 歸併排序 快速排序 計數排序 快速排序 基數排序 桶排序。那麼該怎樣分析和學習排序演算法呢?二 演算法的分析課 在上述的八種排序方法中,根據時間複雜度和是否基於比較可以為三種 排序演算法 時間複雜度 是否基於比較...

選擇和插入排序 java

選擇排序 selection sort 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理 首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。演算...