public class InsertSort {
public static void main(String[] args) {
int[] old = {1,3,3,67,214234,34,9,34314,56,1};
sort(old);
print(old);
}
public static void sort(int[] a){
for(int i=1;i<a.length;i++){
int temp = a[i];
int inner = i;
while(temp<a[inner-1] && inner>0){
a[inner] = a[inner-1];
inner--;
}
a[inner] = temp;
}
}
public static void print(int[] a){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}
分享到:
相关推荐
- **斐波那契数列**:如使用备忘录或迭代法解决。 - **最短路径问题**:如Dijkstra算法的动态规划改进版。 6. **贪心算法** - **活动选择问题**:如区间调度问题。 - **最小生成树**:Prim和Kruskal算法的贪心...
- **插入排序**:将未排序元素逐个插入到已排序部分的正确位置,适合小规模或基本有序的数组。 - **快速排序**:使用分治策略,选取一个基准值,将数组分为两部分,一部分所有元素小于基准,另一部分所有元素大于...
- **插入排序**:将未排序的元素依次插入到已排序的部分,保持有序状态。 - **快速排序**:使用分治策略,选取一个基准元素,将数组分为两部分,然后对每一部分递归进行快速排序。 - **归并排序**:也是基于分治...
- 插入排序:将未排序的元素逐个插入到已排序的序列中,保持有序状态。 - 快速排序:采用分治策略,选取一个基准值,将数组分为两部分,一部分的所有元素都小于基准,另一部分的元素都大于基准,然后对这两部分再...
总的来说,算法备忘录5的核心在于持续学习和实践,通过不断地解决问题,积累经验,优化策略,从而提高我们处理复杂计算问题的能力。无论是在面试准备、项目开发还是日常学习中,这样的备忘都是一种有效的自我提升...
- 常见的排序算法有冒泡排序、选择排序、插入排序、快速排序、归并排序等。 - 不同的排序算法在时间复杂度、空间复杂度等方面有所不同。 2. **搜索算法(Searching Algorithms)**: - 搜索算法用于在一组数据中...
- **插入排序(Insertion Sort)**:将未排序的元素逐个插入已排序的部分,保持有序状态。 - **选择排序(Selection Sort)**:每次找到最小(或最大)的元素,与数组首部交换位置。 - **快速排序(Quick Sort)*...
- **插入排序**:将元素插入到已排序部分的正确位置,逐步构建完整的有序序列。 - **快速排序**:使用分治策略,通过一趟排序将待排记录分隔成独立的两部分,再分别对这两部分进行排序。 - **归并排序**:同样...
- **插入排序**:将元素逐个插入到已排序部分的正确位置,保持排序。 - **快速排序**:基于分治策略,选择一个基准元素,然后将数组分为小于和大于基准的两部分,分别对这两部分进行快速排序。 - **归并排序**:...
1. **排序算法**:书中详细讲解了各种排序算法,如冒泡排序、插入排序、选择排序、快速排序、归并排序、堆排序等。它们各自有其适用场景和性能特点,对于理解数据组织和操作至关重要。 2. **搜索算法**:包括二分...
- **插入排序**:将未排序的元素逐个插入到已排序的部分,保持有序状态。 - **快速排序**:使用分治策略,通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小。 - **归并...
- **排序算法**:介绍了冒泡排序、选择排序、插入排序等基础排序算法的工作原理及其时间复杂度分析。 - **搜索算法**:包括线性搜索、二分搜索等基本搜索技术的实现和效率比较。 - **数据结构操作**:链表、栈、队列...
在动态规划部分,labuladong介绍了动态规划的核心原理、备忘录、最优子结构等技术,并对应了LeetCode中的各种动态规划题型。 在数学算法部分,labuladong介绍了数学算法的各种技术,包括素数、阶乘、随机抽取元素等...
4. **备忘录方法**:一种避免重复计算子问题解的技术。 5. **自底向上方法**:从最小子问题开始逐步构建更大问题的解。 #### 第16章:贪心算法 **主要内容:** - 贪心算法的基本概念 - 贪心算法的应用实例 - 分析...
2. **插入排序**:将未排序的元素逐个插入已排序部分,保持有序状态。 3. **选择排序**:每次找到剩余元素中的最小(或最大)值,与当前位置交换。 4. **快速排序**:利用分治策略,选取一个基准元素,将数组分为两...
3. **行为型模式**:包括责任链、命令、解释器、迭代器、访问者、备忘录、观察者、状态、策略、模板方法和访问者模式,关注对象之间的交互和职责分配。 这些设计模式都是经过实践验证的解决方案,可以解决常见的...
- **排序算法**:包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等,理解它们的时间复杂度和适用场景。 - **查找算法**:线性查找、二分查找、哈希查找,以及在不同数据结构中查找的效率比较。 -...
该文档为学习基本排序算法过程中的学习笔记,大部分内容从网络上其他渠道也能得到,仅用于记录备忘之用。冒泡、选择、插入三种作为基本的排序算法是必须要掌握的,而在MapReduce的实际应用中。在Map阶段,k-v溢写时...