对各种排序算法比较熟悉的朋友可以直接跳过。
1.直接插入排序
原理:将一组数据分成两组(有序组、待插入组)。每次从待插入组中取一个元素,与有序组的元素进行比较,并在有序组中找到合适的位置。就这样,每次插入一个元素,有序组元素增加,待插入组元素减少,直至待插入组个数为0.
var
arr =[
9,
3,
4,
2,
6,
7,
5,
1];
for(
var
i=
1;
i<
arr.
length;
i++){
var
temp =
arr[
i];
//从待插入组中取第一个元素
var
j =
i-
1;
//有序组中的元素
while(
j>=
0 &&
temp <
arr[
j]){
//j>=0防止越界
arr[
j+
1] =
arr[
j];
//不是适合位置,有序组元素向后移动
j--;
}
arr[
j+
1] =
temp;
}
cc.
log(
"直接插入排序",
arr);
2.冒泡排序
原理:对相邻元素两两进行比较,顺序相反则进行位置交换。
var
arr =[
9,
3,
4,
2,
6,
7,
5,
1];
for(
var
i=
0;
i<
arr.
length-
1;
i++){
for(
var
j=
0;
j<
arr.
length-
1-
i;
j++){
if(
arr[
j] >
arr[
j+
1]){
var
temp =
arr2[
j+
1];
arr[
j+
1] =
arr[
j];
arr[
j] =
temp;
}
}
}
cc.
log(
"冒泡排序",
arr);
3.选择排序
原理:与冒泡类似,也是每次循环找最值,但它是把最值下标记录,最后再进行交换的。
var
arr =[
9,
3,
4,
2,
6,
7,
5,
1];
for(
var
i=
0;
i<
arr.
length-
1;
i++){
var
pos =
i;
for(
var
j=
i+
1;
j<
arr.
length;
j++){
if(
arr[
j] <
arr[
pos]){
pos =
j;
}
}
var
t =
arr[
i];
arr[
i] =
arr[
pos];
arr[
pos] =
t;
}
cc.
log(
"选择排序",
arr);