import java.util.*;
class InsertSort
{
ArrayList al;
public InsertSort(int num,int mod)
{
al = new ArrayList(num);
Random rand = new Random();
System.out.println("The ArrayList Sort Before:");
for (int i=0;i<num ;i++ )
{
al.add(new Integer(Math.abs(rand.nextInt()) % mod + 1));
System.out.println("al["+i+"]="+al.get(i));
}
}
public void SortIt()
{
Integer tempInt;
int MaxSize=1;
for(int i=1;i<al.size();i++)
{
tempInt = (Integer)al.remove(i);
if(tempInt.intValue()>=((Integer)al.get(MaxSize-1)).intValue())
{
al.add(MaxSize,tempInt);
MaxSize++;
System.out.println(al.toString());
} else {
for (int j=0;j<MaxSize ;j++ )
{
if(((Integer)al.get(j)).intValue()>=tempInt.intValue())
{
al.add(j,tempInt); //将指定的元素插入此列表中的指定位置。向右移动当前位于该位置的元素(如果有)以及所有后续元素(将其索引加 1)。
MaxSize++;
System.out.println(al.toString());
break;
}
}
}
}
System.out.println("The ArrayList Sort After:");
for(int i=0;i<al.size();i++)
{
System.out.println("al["+i+"]="+al.get(i));
}
}
public static void main(String[] args)
{
InsertSort is = new InsertSort(10,100);
is.SortIt();
}
}
分享到:
相关推荐
C语言插入法排序C语言插入法排序C语言插入法排序C语言插入法排序
在这个场景中,我们讨论的是如何使用分治法的思想来实现插入排序,并通过C++语言进行编程实践。 ### 分治法原理 分治法是计算机科学中解决问题的一种策略,它将大问题分解为若干个规模较小、相互独立、与原问题形式...
在VB中实现插入法排序,通常会创建一个数组,然后遍历数组,对每个元素进行插入操作。同时,为了可视化排序过程,可以使用列表框(ListBox)控件显示排序前后的数组状态,每次插入操作后更新列表框内容,让用户直观...
以下我们将详细介绍三种经典的排序算法:冒泡排序、选择排序和插入法排序。 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法,它重复地走访过要排序的数列,依次比较相邻两个数的大小,如果他们的顺序错误...
类的插入法排序,类的插入法排序,类的插入法排序,类的插入法排序。
**插入法排序(Insertion Sort)** 插入法排序是一种简单直观的排序算法,它的工作原理是通过构造一个有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。该算法在最坏的情况下,时间复杂度...
Call insert(b(), x) '调用子过程进行插入法排序 Picture1.Print x; Picture2.Print Tab(10); For i = 1 To n Picture2.Print b(i); '打印数组元素 Next i Picture2.Print Text1 = "" End If
以下将详细介绍插入法排序的基本原理、步骤以及如何用VB进行实现。 ### 插入法排序基本原理 插入法排序的工作原理类似于我们日常整理扑克牌的过程。想象一下,你有一堆未排序的卡片,每次取一张卡片,将其插入到已...
7. **希尔排序**:由Donald Shell提出的改进版本的插入排序,通过设置不同的增量将待排序的序列分割成若干子序列,分别进行直接插入排序,然后逐步减小增量,直至增量为1,完成整个序列的排序。希尔排序的时间复杂度...
直接排序法、折半插入法、希尔排序法和快速排序法是计算机科学中常见的排序算法,它们在数据处理和算法理解上都具有重要的地位。这些排序算法的C语言实现为初学者提供了很好的学习材料,特别是在VC++6.0环境下进行...
根据给定文件的信息,本文将深入探讨C语言中的两种经典排序方法:插入排序法与冒泡排序法。这两种方法在实际编程中应用广泛,对于理解数据结构与算法的基础概念至关重要。 ### 一、冒泡排序法 #### 1.1 基本原理 ...
任务:用程序实现插入法排序、起泡法改进算法排序; 利用插入排序和冒泡法的改进算法,将用户随机输入的一列数按递增的顺序排好。 输入的数据形式为任何一个正整数,大小不限。 输出的形式:数字大小逐个递增的数列。
本主题将深入探讨Java中三种基础的排序算法:冒泡法、选择法和插入法。 1. **冒泡排序(Bubble Sort)**: 冒泡排序是一种简单直观的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就...
- **最好情况**:当输入数组已经是有序的,直接插入排序只需进行n-1次比较,时间复杂度为O(n)。 - **最坏情况**:输入数组完全逆序,每次插入都需要移动n-i次,总的时间复杂度为O(n^2)。 - **平均情况**:也是O(n...
c语言基本插入排序法c语言基本插入排序法c语言基本插入排序法c语言基本插入排序法
常见的经典排序算法有希尔排序、二分插入法、直接插入法、带哨兵的直接排序法、冒泡排序、选择排序、快速排序、堆排序等。 一、希尔排序(Shell 排序法) 希尔排序法,又称宿小增量排序,是 1959 年由 D.L.Shell ...
在编程中,我们可以用以下伪代码或实际的编程语言(例如C++、Java、Python等)来表示直接插入排序: ```python def insertion_sort(arr): for i in range(1, len(arr)): key = arr[i] j = i - 1 while j >= 0 ...
本篇文章将基于给定文件的信息,深入探讨“插入法对10个数排序”的经典C语言实现及其背后的逻辑原理。 ### 插入排序:稳定且直观的排序策略 插入排序是一种简单直观的比较排序算法,其工作原理类似于人们日常生活...
根据给定的文件信息,我们可以了解到这段代码主要实现了两种不同的堆排序方法:一种是通过插入法构建初始堆,另一种则是通过筛选法构建初始堆。接下来,我们将详细解析这两种方法的具体实现及其背后的原理。 ### 一...
本主题将深入探讨四种常见的排序算法:冒泡排序、选择排序、插入排序和快速排序,这些算法在Java中都有相应的实现。下面,我们将详细讲解每种排序算法的工作原理,并给出Java代码实现。 1. 冒泡排序(Bubble Sort)...