一般排序的常用方法有:冒泡法、插入法、选择法、快速排序、归并排序、桶排序、希尔排序、堆排序、基数排序、外部排序等。
介绍插入法排序
插入法排序也是一种稳定的排序算法
(1)如果已知数组a[],设计一个和a相同的b[];
(2)将a的第一个元素放到b开始位置;
(3)取a第2个数组到b第2个位置,与其前面的数比较,如果前面的数比它大,就交换。
(4)取a第3个数到b第3个数位置,如果上一个数比之大,则交换,再和再前一个数比较,逐一交换,直到第3个之前所有数排号序。
(5)……。之后,逐一将a中数放到b中去,并如前排好序,保证b中总是排好序的数。
其实就是平常打斗地主的时候拿牌理牌一样的策略
image.pngJS实现:
// 插入排序
var insert = function (arr){
let t = 0;
for(let i = 0;i<arr.length;i++){
for(let j = i;j>0;j--){
if(arr[j]<arr[j-1]){
t = arr[j];
arr[j] = arr[j-1];
arr[j-1] = t;
}
}
}
return arr;
}
java实现:
// 插入排序
public static void insert(int[] arr){
int t = 0;
for(int i = 0;i<arr.length;i++){
for(int j = i;j>0;j--){
if(arr[j]<arr[j-1]){
t = arr[j];
arr[j] = arr[j-1];
arr[j-1] = t;
}
}
}
}
网友评论