package com.wuxifu.insert;
public class Insert001
{
public static void main(String[] args)
{
//插入排序
int[] i=new int[]{110,120,9999,11111,99,88,55,111,999,444,200};
for (int insert = 1; insert < i.length; insert++)
{
//要插入的数,不要准备插入数的index
int insertNum=i[insert];
//依次跟前面的数进行比较 ,
//先跟前面已排好顺序的最后一位进行比较,绝对不能跟已排好顺序的数的第一位进行比较,那样就会出错
for (int j2 = insert-1; j2>=0; j2--)
//for (int j2 = 0; j2<=insert-1; j2++) 这样比就会出错的,大错特错
{
//比要插入的数大 就向后移动一位
if(i[j2]>insertNum)
{
i[j2+1]=i[j2];
i[j2]=insertNum;
}
}
}
for (int j = 0; j < i.length; j++)
{
System.out.println(i[j]);
}
//插入排序(2)
/**
* 画线,不要系统的路线规划
*
* @param start
* @param wayPoints
* @param end
*/
private void drawLine(LatLng start, List<LatLng> wayPoints, LatLng end) {
List<LatLng> points = new ArrayList<LatLng>();
if (start != null) {
points.add(start);
}
if (wayPoints != null) {
points.addAll(wayPoints);
}
if (end != null) {
points.add(end);
}
for (int i = 1; i < points.size(); i++) {
LatLng insertLatLng = points.get(i);
for (int j2 = i - 1; j2 >= 0; j2--)
// TODO 已排好序的
{
// 已排好序的比要插入的数大 就向后移动一位
LatLng latLng = points.get(j2);
double distance = DistanceUtil.getDistance(latLng, points.get(0));
double insertDis = DistanceUtil.getDistance(insertLatLng, points.get(0));
if (distance > insertDis) {
points.remove(j2);
points.add(j2+1, latLng);
}
}
}
OverlayOptions ooPolyline = new PolylineOptions()
.width((int) getResources().getDimension(R.dimen.dimen5) / 2)
.color(getResources().getColor(R.color.verifying))
.points(points);
baiduMap.addOverlay(ooPolyline);
}
//冒泡排序
int[] a=new int[]{110,11,55,888,99,456,100};
//第一个for只是说要遍历多少次,可以多不能少, 不牵及数组的索引
//第二个for牵及数据的索引,所以要注意
for (int i = 0; i < a.length; i++)//也可以a.length-1不过多排一次也没事的!!!!
{
for (int j = 0; j < a.length-i-1; j++)//因为下面的索引到了J+1所以这里要减去1,不然会越界
{
if(a[j]>a[j+1])
{
//前面的数大于后面的数
int temp=a[j];//将前面的数的值保存起来
a[j]=a[j+1];//改变前面数的引用
a[j+1]=temp;//改变后面数的引用
}
}
}
for (int i = 0; i < a.length; i++)
{
System.out.println(a[i]);
}
}
}