从今天开始系统的学习算法,争取每天用java实现一个算法,然后在发表在iteye。既可以记录自己的学习轨迹,也便于有兴趣的朋友一起来讨论学习。ps:本人还是java新手,欢迎各种讨论学习。
<br>
今天先来一个简单的排序算法:插入排序
/*
* 插入排序算法的java实现
* version 1.0 2012/3/26
* @author akon
*/
package com.akon405.www;
public class InsertSort {
private int[] A={2,12,32,43,13,45,1,8,23,47,89,90};
public InsertSort(){
for(int i=1;i<A.length;i++){
int key=A[i];
int j=i-1;
while(j>=0&&key<A[j]){
A[j+1]=A[j];
j--;
}
A[j+1]=key;
}
}
public void print(){
for(int i=0;i<A.length;i++)
System.out.println(A[i]);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
InsertSort qs=new InsertSort();
qs.print();
}
}
分享到:
相关推荐
数据结构---直接插入排序/快速排序/选择排序/冒泡排序(详细实现算法和性能比较)
插入排序是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序...
本主题将详细探讨四种常见的排序算法:选择排序、插入排序、快速排序以及冒泡排序,它们都是用C语言实现的。以下是这些排序算法的详细解析: 1. **选择排序(Selection Sort)** - 选择排序是一种简单直观的排序...
本资源包含三个经典的排序算法的源代码:插入排序、选择排序和冒泡排序,这些都是初级到中级程序员常学习和使用的算法。下面将详细介绍这三个排序算法的工作原理、特点以及代码实现。 1. **插入排序(Insertion ...
**插入排序**是一种简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。这种算法对大数据量的处理效率较低,但对于小规模数据或者部分有序的...
### 插入排序详解 #### 一、插入排序概述 插入排序是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上通常采用in-...
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
插入排序是一种基础且直观的排序算法,它的工作原理可以类比于整理扑克牌。在实际应用中,插入排序对于小规模数据或者部分有序的数据表现优秀,但对于大规模无序数据,其效率相对较低。以下是关于插入排序的详细知识...
交换排序 选择排序 冒泡排序 插入排序
3. 插入排序(Insertion Sort):插入排序将元素逐个插入到已排序的部分,保持有序。对于小规模数据或部分有序的数据,插入排序效率较高,时间复杂度为O(n^2)。 4. 希尔排序(Shell Sort):希尔排序是插入排序的一...
直接插入排序是一种基础且简单的排序算法,它的工作原理可以形象地比喻为扑克牌的洗牌过程。在实际应用中,虽然对于大规模数据的排序效率不如更高级的算法,如快速排序、归并排序等,但它的实现简单,适合小规模或...
本人写的2-路插入排序
3. **内部循环**:`while (tmp > arr[j])` 这里需要注意的是,为了正确地实现插入排序,条件应该为 `tmp [j]`。该循环负责将当前元素`tmp`插入到已排序序列的正确位置。 - `int tmp = arr[i];` 保存当前需要插入...
### 插入排序原理及C++实现 #### 1. 插入排序基本概念 插入排序是一种简单直观的比较排序算法。它的工作原理是通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在...
### 数据结构之直接插入排序详解 #### 一、引言 在计算机科学中,排序算法是数据处理中不可或缺的一部分,而直接插入排序是一种简单直观的排序方法。它的工作原理类似于我们手动排序一组卡片的方式——每次从未...
折半插入排序(Binary Insertion Sort)是一种改进的插入排序方法,它利用二分查找技术来减少比较次数,从而提高排序效率。现在我们来深入探讨这个主题。 首先,我们要了解插入排序的基本原理。插入排序是一种简单...
3. **循环分组**:接下来,根据当前的间隔值进行分组,并对每个组内的元素执行插入排序操作。具体步骤如下: - 遍历数组,将元素按照当前间隔值进行分组,例如当间隔为2时,可以将数组分为两个子序列进行排序。 - ...
3. **合并**: 当两个子数组已经排序完毕后,再将它们合并成一个有序的数组。 #### 三、归并排序的具体实现 1. **分解**: 给定一个数组,将其分为两个子数组。 2. **递归排序**: 对这两个子数组分别进行归并排序。 ...
**插入排序**是一种基础且广泛使用的排序算法,尤其在数据量较小或者部分有序的情况下表现出较高的效率。它基于分治法的思想,将一个大问题分解成若干小问题来解决。在这个场景中,我们讨论的是如何使用分治法的思想...