直接插入排序

来源:互联网 发布:华为 acl 端口 编辑:程序博客网 时间:2024/05/29 12:11
package insertsort;/** * 直接插入排序 * @author Administrator * *设数组为a[0…n-1]。 *1初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=1 *2.将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区间。 *3.i++并重复第二步直到i==n-1。排序完成。 */public class DirectInsertSort {public void Sort(int a[]){int t; for(int i=0;i<a.length;i++) { t=a[i];    //将待排序的元素a[i]赋给t  for(int j = 0;j < i;j++) { if(t < a[j]) //在前面的排序区中找第一个比t小的数 { for(int k = i - 1; k >= j; k--) //将比a[i]大的数据向后移   { a[k + 1] = a[k]; }  a[j] = t;//将a[i]放到正确位置上  break; } }  }  for(int i = 0;i<a.length;i++) { System.out.print(" " + a[i]); }}}

0 0
原创粉丝点击