新聞中心
插入排序,一般也被稱為直接插入排序。對(duì)于少量元素的排序,它是一個(gè)有效的算法 。插入排序是一種最簡(jiǎn)單的排序方法,插入排序和冒泡排序一樣,也有一種優(yōu)化算法,叫做拆半插入,下面為大家詳細(xì)講解一下插入排序。

創(chuàng)新互聯(lián)公司主要業(yè)務(wù)有網(wǎng)站營(yíng)銷策劃、成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、微信小程序定制開發(fā)、H5開發(fā)、程序開發(fā)等業(yè)務(wù)。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當(dāng)客戶,還把客戶視為我們的合作伙伴,在開展業(yè)務(wù)的過程中,公司還積累了豐富的行業(yè)經(jīng)驗(yàn)、網(wǎng)絡(luò)營(yíng)銷推廣資源和合作伙伴關(guān)系資源,并逐漸建立起規(guī)范的客戶服務(wù)和保障體系。
算法步驟
將第一待排序序列第一個(gè)元素看做一個(gè)有序序列,把第二個(gè)元素到最后一個(gè)元素當(dāng)成是未排序序列。
從頭到尾依次掃描未排序序列,將掃描到的每個(gè)元素插入有序序列的適當(dāng)位置。(如果待插入的元素與有序序列中的某個(gè)元素相等,則將待插入元素插入到相等元素的后面。)
動(dòng)圖演示
插入排序簡(jiǎn)介插入排序簡(jiǎn)介
代碼實(shí)現(xiàn)
JavaScript
實(shí)例
function insertionSort(arr) {
var len = arr.length;
var preIndex, current;
for (var i = 1; i while(preIndex >= 0 && arr[preIndex] > current) {
arr[preIndex+1] = arr[preIndex];
preIndex--;
}
arr[preIndex+1] = current;
}
return arr;
}
Python
實(shí)例
def insertionSort(arr):
for i in range(len(arr)):
preIndex = i-1
current = arr[i]
while preIndex >= 0 and arr[preIndex] > current:
arr[preIndex+1] = arr[preIndex]
preIndex-=1
arr[preIndex+1] = current
return arr
Go
實(shí)例
func insertionSort(arr []int) []int {
for i := range arr {
preIndex := i - 1
current := arr[i]
for preIndex >= 0 && arr[preIndex] > current {
arr[preIndex+1] = arr[preIndex]
preIndex -= 1
}
arr[preIndex+1] = current
}
return arr
}
Java
實(shí)例
public class InsertSort implements IArraySort {
@Override
public int[] sort(int[] sourceArray) throws Exception {
// 對(duì) arr 進(jìn)行拷貝,不改變參數(shù)內(nèi)容
int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);
// 從下標(biāo)為1的元素開始選擇合適的位置插入,因?yàn)橄聵?biāo)為0的只有一個(gè)元素,默認(rèn)是有序的
for (int i = 1; i while (j > 0 && tmp if (j != i) {
arr[j] = tmp;
}
}
return arr;
}
}
PHP
實(shí)例
function insertionSort($arr)
{
$len = count($arr);
for ($i = 1; $i $len; $i++) {
$preIndex = $i - 1;
$current = $arr[$i];
while($preIndex >= 0 && $arr[$preIndex] > $current) {
$arr[$preIndex+1] = $arr[$preIndex];
$preIndex--;
}
$arr[$preIndex+1] = $current;
}
return $arr;
}
C
實(shí)例
void insertion_sort(int arr[], int len){
int i,j,key;
for (i=1;i=0) && (arr[j]>key)) {
arr[j+1] = arr[j];
j--;
}
arr[j+1] = key;
}
}
C++
實(shí)例
void insertion_sort(int arr[],int len){
for(int i=1;i
while((j>=0) && (key
C#
實(shí)例
public static void InsertSort(int[] array)
{
for(int i = 1;i for(int j = i - 1;j >= 0;j--)
{
if(array[j] > temp)
{
array[j + 1] = array[j];
array[j] = temp;
}
else
break;
}
}
}
Swift
實(shí)例
for i in 1..
let temp = arr[i]
for j
in (0..
reversed() { if arr[j] > temp { arr.swapAt(j, j+1) } } }
分享題目:詳解插入排序
URL分享:http://m.fisionsoft.com.cn/article/cocooie.html


咨詢
建站咨詢
