public class Paixu {
public static void main(String[] args) {
int[] array = { 4, 2, 7, 8, 0 };
// int[] a=bubbleSort(array);
int[] a=selectSort(array);
// int[] a=insertSort(array);
for(int k:array){
System.out.print(k);
}
}
/*
* 插入排序的基本方法是:每步将一个待排序的对象,按其关键码大小,插入到前面已经排好序的一组对象的适当位置上,直到对象全部插入为止。
*/
public static int[] insertSort(int[] a){
int len=a.length;
for(int i=0;i<len;i++){
for(int j=i;j>0;j--){
if(a[j]<a[j-1]){
int temp=a[j-1];
a[j-1]=a[j];
a[j]=temp;
}else{
break;
}
}
}
return a;
}
/*
*冒泡排序
* 1、第一趟:首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则将两个记录交换之,然后比较第二个记录和第三个记录的关键字。直至第n-1个记录和第n个记录的关键字进行过比较为止。
然后进行第二趟起泡排序,对前n-1个记录进行同样操作。
...直到在某趟排序过程中没有进行过交换记录的操作为止。
*/
public static int[] bubbleSort(int[] a) {
int len = a.length;
for (int i = 0; i < len-1; i++) {
for (int j = 0; j < len - 1-i; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
}
}
}
return a;
}
/*选择排序:选择排序的基本思想是:每一趟 (例如第 i 趟,i = 0, 1, …, n-2) 在后面 n-i 个待排序对象中选出关键码最小的对象,
作为有序对象序列的第 i 个对象。待到第 n-2 趟作完,待排序对象只剩下1个,就不用再选了。
*/
public static int[] selectSort(int [] a){
int len=a.length;
for(int i=0;i<len-1;i++){
for(int j=i;j<len;j++){
if(a[j]<a[i]){
int temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
return a;
}
}
分享到:
相关推荐
C#排序算法总结涵盖了交换排序和插入排序两大类排序算法,其中交换排序包括了冒泡排序、选择排序和快速排序,而插入排序则涉及直接插入排序和折半插入排序。下面将详细介绍每种排序算法的实现原理、特点以及在C#中的...
【排序算法总结】 排序是计算机科学中的一项基本操作,它涉及到如何有效地重新排列一组数据,使其按照特定的顺序排列。本文将重点介绍八大排序算法,包括插入排序、希尔排序、交换排序、快速排序、选择排序、堆排序...
《十大经典排序算法总结》 排序算法是计算机科学的基础,其设计思想和效率对软件的性能有着直接影响。本文主要探讨了十种经典的排序算法,包括它们的设计思路、优缺点以及适用场景,帮助我们理解排序算法的核心。 ...
插入排序是一种简单的排序算法,其时间复杂度为O(n^2)。它通过将每个元素插入到已排序的部分中找到正确位置来工作,保持已排序部分的稳定性。当数组近乎有序时,插入排序表现出较好的性能。由于它主要涉及元素的...
在这个名为“各种排序算法总结(ppt)”的资料中,我们将会深入探讨多种常见的排序算法,包括它们的基本原理、优缺点以及实际应用。** 首先,我们要了解排序的目的是为了使数据有序,这在数据处理和分析中具有广泛...
冒泡排序是一种简单的交换排序,它通过重复遍历待排序的数列,依次比较相邻元素并根据需要交换位置,直到整个数列变得有序。冒泡排序的时间复杂度在最坏情况下为O(n^2),适合小规模或部分有序的数据。 2. 插入排序...
在本文档中,我们主要探讨了四种经典的排序算法:冒泡排序、简单选择排序、快速排序和堆排序,这些算法都是在C语言环境下实现的。排序算法是计算机科学中的基础内容,它们对于组织和处理大量数据至关重要。 1. **...
例如,冒泡排序是一种简单的交换排序,通过重复遍历序列并交换相邻的逆序元素来实现排序;快速排序则采用了分治策略,通过选取一个基准元素并将其与其他元素进行比较,将序列划分为两部分,然后对这两部分进行递归...
### 常用排序算法总结 #### 一、冒泡排序 冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,依次比较相邻的两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复进行的,直到没有再需要...
### 排序学习总结 #### 一、概述 本文旨在对常见的排序算法...例如,对于小规模数据,可以直接使用简单排序算法如插入排序或选择排序;而对于大规模数据,则应考虑使用更高效的排序算法,如快速排序或归并排序等。
直接插入排序是一种简单直观的排序算法,它的工作原理类似于我们平时手动排序扑克牌。首先,假设数组的第一个元素已经排序,然后遍历剩下的元素,将每个元素插入到已排序部分的正确位置。这个过程会重复,直到所有...
排序算法总结——最全、最新的排序算法 本文对各种排序算法进行了总结,包括插入排序、选择排序、冒泡排序、快速排序和堆排序等。下面是对每种排序算法的详细介绍: 一、插入排序(Insertion Sort) 插入排序是一...
插入排序是一种简单直观的排序算法,它将数组分为已排序和未排序两部分,然后逐个将未排序元素插入到已排序部分的正确位置。对于小规模或者接近有序的数据,插入排序的效率较高。其时间复杂度在最好情况下(已排序...
- 插入排序简单直观,它将未排序元素逐个插入已排序部分。时间复杂度为O(n^2),在最好情况下(已排序序列)接近线性。适用于小规模或近似有序的数据。 7. **选择排序**: - 选择排序每次找出未排序部分的最小(或...
### 堆排序总结 #### 1. 堆排序定义 堆排序是一种基于比较的排序算法,它利用了一种特殊的完全二叉树结构——堆(heap)来组织数据。在一个堆中,每个节点的关键字都不大于(对于大根堆)或都不小于(对于小根堆)...
插入排序是简单直观的排序方法,将每个元素插入到已排序的部分,类似于打扑克牌时将新牌插入正确位置。时间复杂度为O(n^2)。 ```cpp template void insert_sort(T a[], int n){ int i, j; T elem; for (i = 1; ...
对于整型数组的排序非常简单,主要通过定义比较函数实现。 ```c int num[100] = { /* 初始化数组 */ }; int cmp(const void *a, const void *b) { return *(int *)a - *(int *)b; // 返回值为负表示a小于b;为零...
冒泡排序是一种简单的排序算法,通过重复地遍历待排序的列表,比较每对相邻元素并交换它们的位置来工作,如果发现任何一对元素顺序错误,则交换它们的位置。这个过程会持续进行直到没有更多的交换发生为止,这意味着...