java与JS直接插入排序的案例

插入排序简单来说,就是重新去遍历一组数据,然后在遍历的时候,拿正在遍历的数据和已经遍历过的数据去对比,最后按照某种特定的顺序去排序;

 

举个简单的例子,大家都玩过斗地主吧,我们把桌子上的牌看成是一个杂乱无序的数组;在我们斗地主的时候,我们会拿刚起的牌和手中的牌进行比较,然后把它插入到指定的位置。这就是我们的插入排序;

 

输入:n个数的一个序列<a₁,a₂,...,an>。

 

输出:输出的结果要满足排序后的结果;

 

java:

public static void main(String[] args) {
int[] a = { 90, 34, 5, 7, 71, 2};
insertSort1(a, a.length);
}
 
public static void insertSort1(int a[], int num) {
for (int i = 1; i < num; i++) {
int temp=a[i];  //复制为哨兵进行对比
int j=i-1;
while(j>=0&&temp<a[j]){
a[j+1]=a[j]; //如果要对比的数大于当前数则后移一位
j--;  
}
a[j+1]=temp; 
print(a);
}
}
public static void print(int a[]){
for (int i = 0; i < a.length; i++) {
if(i%6==0){
System.out.println();
}
System.out.print(a[i]+"  ");
}
}

 

 再来个JS版本的

<script>
 var a=[90, 34, 5, 7, 71, 2];
 insertSort(a);
 function insertSort(a){
for(var i in a){
var temp=a[i] //复制为哨兵
var j=i-1; //每次递减一位进行对比
while(j>=0&&temp<a[j]){
a[j+1]=a[j];  //如果temp大于a[j]则后移一位,直到当前哨兵不再大于a[j]
j--;  //找到所在的位置退出当前循环
}
a[j+1]=temp; //将temp插入到当前位置的后一位;
}
alert(JSON.stringify(a));
 }
</script>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.duanlonglong.com/qdjy/606.html