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]);
}
}
}
相关推荐
本主题将详细探讨四种常见的排序算法:选择排序、插入排序、快速排序以及冒泡排序,它们都是用C语言实现的。以下是这些排序算法的详细解析: 1. **选择排序(Selection Sort)** - 选择排序是一种简单直观的排序...
本资源包含三个经典的排序算法的源代码:插入排序、选择排序和冒泡排序,这些都是初级到中级程序员常学习和使用的算法。下面将详细介绍这三个排序算法的工作原理、特点以及代码实现。 1. **插入排序(Insertion ...
交换排序 选择排序 冒泡排序 插入排序
本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
1. 冒泡排序(Bubble Sort):冒泡排序是最简单的排序算法之一,通过不断交换相邻的不正确顺序元素,使较大的元素逐渐“浮”到序列的末尾。它的时间复杂度为O(n^2)。 2. 选择排序(Selection Sort):选择排序每次...
根据提供的文件信息,我们可以深入探讨几种经典的排序算法:冒泡排序、直接插入排序、快速排序以及希尔排序。这些算法在数据结构与算法课程中是非常重要的基础内容,它们各自有着独特的特性和应用场景。 ### 1. ...
数据结构(c语言版)严蔚敏 吴伟民编著 中直接插入排序、折半排序、shell排序、冒泡排序、快速排序、选择排序、堆排序的实现、归并排序,使用c语言实现
本文将详细讲解六种经典的排序算法——合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合提供的文件名(sort.c、set.c、main.c、set.h、sort.h)推测出每个文件可能包含的代码实现。 1. **合并...
选择排序、插入排序、冒泡排序以及快速排序和归并排序的C语言实现,绝对可用
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
本篇文章将详细讨论几种常见的排序算法:选择排序、冒泡排序、插入排序、合并排序以及快速排序,分析它们的算法原理、时间效率,并通过经验分析验证理论分析的准确性。 **1. 选择排序(Selection Sort)** 选择排序...
### 数据结构:交换排序-冒泡排序实验指导 #### 实验背景与目标 在计算机科学领域,数据结构和算法是核心研究对象,其中排序算法作为基础且重要的算法之一,广泛应用于各类数据处理场景。本实验旨在深入理解并掌握...
直接插入排序、冒泡排序、快速排序、直接选择排序、堆排序和二路归并排序是计算机科学中经典的排序算法,它们在数据处理和算法学习中占有重要地位。这些排序算法各有特点,适用场景不同,下面将逐一详细介绍,并结合...
在本文中,我们将深入探讨四种经典的排序算法:插入排序、选择排序、基数排序和冒泡排序,以及它们在C++语言中的实现。 **插入排序(Insertion Sort)** 插入排序是一种简单直观的排序算法,它的工作原理类似于我们...
冒泡排序、选择排序和插入排序是三种基本的排序算法,它们都是在计算机科学中用于组织数据的关键技术。这些算法的实现通常用作教学示例,帮助初学者理解排序过程和时间复杂性。 **冒泡排序(Bubble Sort)**: 冒泡...
### 冒泡排序(Bubble Sort) #### 定义与原理 冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复进行的,直到没有再需要...
### 排序(上):为什么插入排序比冒泡排序更受欢迎? #### 一、引言 排序作为计算机科学中最基本且重要的算法之一,在实际应用中有着广泛的应用场景。无论是在数据库查询优化、搜索引擎结果排序还是在数据分析...
根据给定文件的信息,本文将深入探讨C语言中的两种经典排序方法:插入排序法与冒泡排序法。这两种方法在实际编程中应用广泛,对于理解数据结构与算法的基础概念至关重要。 ### 一、冒泡排序法 #### 1.1 基本原理 ...
本文将详细讨论三种基础的排序算法:选择排序、插入排序和冒泡排序。这些算法虽然简单,但在理解计算机如何执行排序操作方面起着至关重要的作用。 首先,我们来看**选择排序**(Selection Sort)。它的工作原理是...