1. 程式人生 > >java的直接插入排序

java的直接插入排序

有一個已經有序的資料序列,要求在這個已經排好的資料序列中插入一個數,但要求插入後此資料序列仍然有序,這個時候就要用到一種新的排序方法——插入排序法,插入排序的基本操作就是將一個數據插入到已經排好序的有序資料中,從而得到一個新的、個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為O(n^2)。是穩定的排序方法。插入演算法把要排序的陣列分成兩部分:第一部分包含了這個陣列的所有元素,但將最後一個元素除外(讓陣列多一個空間才有插入的位置),而第二部分就只包含這一個元素(即待插入元素)。在第一部分排序完成後,再將這個最後元素插入到已排好序的第一部分中。

插入排序的基本思想是:每步將一個待排序的記錄,按其關鍵碼值的大小插入前面已經排序的檔案中適當位置上,直到全部插入完為止。

程式碼如下:

package com.dsaaj;


public class InsertionSort {
 
    public static void insertionSort(int[] a) {
      
        for (int i = 1; i < a.length; i++) {
            for (int j = i; j > 0; j--) {
                if (a[j] < a[j - 1]) {
                    int tmp = a[j - 1];
                    a[j - 1] = a[j];
                    a[j] = tmp;
                }
            }
        }
    }
 
    public static void main(String[] args) {
        int[] a = { 49, 38, 65, 97, 76, 13, 27, 50 };
        insertionSort(a);
        for (int i : a)
            System.out.print(i + " ");
    }
}

相關推薦

java 直接插入排序詳解

1.直接插入排序比較簡單就不做更多的介紹了 請看程式碼: public static void insertSort(int[] arr) { for (int i = 1; i < arr.length; i++) { int temp =arr[

Java直接插入排序

public class InsertSort { public static void main(String[] args) { int[] nums = {3, 60,

Java與算法之(9) - 直接插入排序

set reat 正是 stat copy boa 派生 creat 人的 直接插入排序是最簡單的排序算法,也比較符合人的思維習慣。想像一下玩撲克牌抓牌的過程。第一張抓到5,放在手裏;第二張抓到3,習慣性的會把它放在5的前面;第三張抓到7,放在5的後面;第四張抓到4,那麽我

InsertionSort 直接插入排序java

string static 數字 nbsp ava 思想 oid sta and 排序思想: 相當於一堆數字,一開始先取出2個數排序,2個數排好序之後,再從一堆數字裏面取一個數排序,直到結束偽代碼: INSERTION_SORT(A) for j = 2 to A.leng

【算法拾遺(java描寫敘述)】--- 插入排序直接插入排序、希爾排序

ecan itblog insert med image java程序 can rip title 插入排序基本思想 每次將一個待排序的記錄按其keyword大小插入到前面已經拍好序的子文件的適當位置,直到全部記錄插入完畢為止。 直接插入

八大排序算法原理以及Java實現(直接插入排序

不能 oat 設立 side 堆排 八大排序 算法 line load 概述 排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。 我們這裏說說八大排序就是內部排序。

直接插入排序(Java實現)

插入排序 直接插入排序 javastatic void insertionSort(int[] unsorted){ for (int i = 1; i < unsorted.length; i++) { if (unsorted[i - 1] > unsorted[i])

直接插入排序 java實現

直接插入排序的演算法思路是: 基於給定的一個數組,初始時假設第一個記錄自成一個有序序列,其餘記錄為無序序列。接著從第二個記錄開始,按照記錄的大小依次將當前處理的記錄插入到其之前的有序序列中,直至最後一個記錄插入到有序序列中為止。 package demo; public clas

java實現 》從 》 直接插入排序 》到》 希爾排序

直接插入排序和希爾排序,把這兩個放一起是便於記憶,這兩個排序是差不多的,希爾排序也只是對插入排序進行一點修改: 首先是看一下我們的插入排序: package sort; public class InsertSort { public static void main(String[]

java幾種排序簡單實現(快速排序,氣泡排序直接插入排序

package Test; import com.alibaba.fastjson.JSONObject; public class Test { static int[] arrays = new int[] { 3, 10, 11, 1, 8, 2, 9, 4 }; // index

Java】 大話資料結構(18) 排序演算法(5) (直接插入排序) 資料結構與演算法合集 資料結構與演算法合集

本文根據《大話資料結構》一書,實現了Java版的直接插入排序。 更多:資料結構與演算法合集 基本概念   直接插入排序思路:類似撲克牌的排序過程,從左到右依次遍歷,如果遇到一個數小於前一個數,則將該數插入到左邊所有比自己大的數之前,也就是說,將該數前面的所有更大的數字都後移一位,空出來的位置放入該數。

Java基礎練習03--直接插入排序

       直接插入排序是一種簡單的排序方法,它的基本操作是將一個紀錄插入到已經排好的記錄中,從而得到一個新的、記錄數增1的有序表。 程式碼: import java.util.Arrays; /** * 使用陣列進行演示:

直接插入排序(Straight Insertion Sort)- java實現

學習自嚴蔚敏、吳偉民的《資料結構》-清華大學出版 最簡單的排序方法。基本操作是將一個記錄插入到已排序好的有序表中,從而得到一個新的、記錄數增1的有序表。 先看程式碼: public static int[] insertSort(int[] arr) { for

直接插入排序(java版)

直接插入排序(Straight Insertion Sort)的基本操作是將一個記錄插入到已經排好序的有序表中,從而得到一個新的、記錄數增1的有序表。                    – 《大話資料結構》                    package com.z

java實現直接插入排序和希爾排序

直接插入排序和希爾排序,把這兩個放一起是便於記憶,這兩個排序是差不多的,希爾排序也只是對插入排序進行一點修改: 首先是看一下我們的插入排序: package sort; public class InsertSort { public static void main

Java語言陣列排序——氣泡排序,選擇排序,快速排序直接插入排序

今天主要來說下陣列排序的問題,主要介紹的有氣泡排序,選擇排序,快速排序,直接插入排序四種排序: 1.氣泡排序: 主要有原理圖與程式碼解釋; 原理圖借鑑一位老師畫的圖,嘻嘻,老師畫的圖比較好看,就拿來借鑑下: 2.選擇排序 3.快速排序 4.直接插

Java演算法——直接插入排序

直接插入排序 前言 直接插入是一種穩定的插入排序,效率較高,而且時間複雜度也低,因為只是在一個數組內部進行內排,但是隻適用於在有一些以前就排好的順序的陣列內部,如果在很長又很雜亂的陣列內部進行排序的話,會讓效率降低。 直接插入排序描述 首先定義一段長度為n的陣列,從最左邊開始

java實現---插入排序----直接插入排序和希爾排序

插入排序 直接插入排序 希爾排序 直接插入排序 直接插入排序,把待排序的元素插入到前面排好序的一組元素的合適位置上去 在前面已經排好序的元素中,從後往前找 publ

五十道程式設計小題目 --- 28 八大排序演算法 java 之 01直接插入排序

1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好的有序表中,從而得到一個新,記錄數增1的有序表。即:先將序列的第1個記錄看成是一個有序的子序列,然後從第2個記錄逐個進行插入,直至整個序列有序為止。 要

Java陣列的高階部分:氣泡排序+選擇排序+直接插入排序+快速排序+折半查詢

1.氣泡排序 (1)氣泡排序的思想       兩兩比較,大的往後放,第一次比較完畢之後,最大值就出現在了最大索引處!然後依次這樣比較,就可以得到一個排好序的陣列. (2)氣泡排序的規律  1)一定是兩兩比較,大的往後放,第一次比較完畢,最大值在最大索引處  2)第