JAVA插入排序 JAVA算法起步之插入排序实例
人气:0想了解JAVA算法起步之插入排序实例的相关内容吗,在本文为您仔细讲解JAVA插入排序的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:JAVA,插入排序,下面大家一起来学习吧。
趁着过年这段时间,我将算法导论这本书看了一遍,感觉受益匪浅。着这里也根据算法导论中所涉及到的算法用java实现了一遍。
第一篇我们就从排序开始,插入排序的原理很简单,就像我们玩扑克牌时一样。如果手里拿的牌比他前一张小,就继续向前比较,知道这张牌比他前面的牌打时候就可以插在他的后面。当然在计算机中我们相应的也需要将对比过的牌向后移一位才可以。
这里直接给出算法,相信很多程序员都感觉有些程序比我们的自然语言都要好理解。
复制代码 代码如下:
public class Sort {
public void sort(int[] s){
if(s.length<1){
return ;
}
for (int i = 1; i < s.length; i++) {
int key =s[i];
int j=i-1;
while(j>=0&&s[j]>key){
s[j+1]=s[j];
j--;
}
s[j+1]=key;
}
}
public static void main(String[] args) {
Sort s=new Sort();
int[] st =new int[]{7,5,3,4,2,1};
s.sort(st);
for (int i = 0; i < st.length; i++) {
System.out.println(st[i]);
}
}
}
他的时间复杂度是o(n*n),是原址的(任何时候都需要常数个二外的元素空间存储数据而归并排序就是非原址的)
加载全部内容