冒泡排序在发现比它小的时候就交换,选择排序只有在确定了最小的数据之后,才会发生交换。
插入排序速度比冒泡排序速度快一倍,比选择排序速度还快些。
冒泡排序:
第一种方式:
int[] arr = new int[] { 22, 55, 44, 66, 33, 11, 77, 99, 88 ,0};
int count = 0;
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - i -1; j++) {
if (arr[j] > arr[j + 1]) {
count++;
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println("count:"+count);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
第二种方式:
int[] arr = new int[] { 22, 55, 44, 66, 33, 11, 77, 99, 88 ,0};
int x,y;
int count = 0;
for (x = arr.length-1;x>0;x--) {
for (y=0;y<x;y++) {
if(arr[y]>arr[y+1]){
count++;
int temp = arr[y];
arr[y] = arr[y+1];
arr[y+1] = temp;
}
}
}
System.out.println("count:"+count);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
得到结果:
count:19
0
11
22
33
44
55
66
77
88
99
选择排序:
int[] arr = new int[] { 22, 55, 44, 66, 33, 11, 77, 99, 88 ,0};
int count = 0 ;
for (int i = 0; i < arr.length; i++) {
int min = i; /* 将当前下标定义为最小值下标 */
for (int j = i+1; j < arr.length; j++) {
if(arr[min]>arr[j]){ /* 如果有小于当前最小值的关键字 */
count++;
min = j; /* 将此关键字的下标赋值给min */
}
}
if(i!=min){/* 若min不等于i,说明找到最小值,交换 */
int tmp = arr[min];
arr[min] = arr[i];
arr[i] = tmp;
}
}
System.out.println("count:"+count);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
得到结果:
count:13
0
11
22
33
44
55
66
77
88
99
插入排序:
int[] arr = new int[] { 22, 55, 44, 66, 33, 11, 77, 99, 88 ,0};
int in,out;
for (out =1 ; out < arr.length; out++) {
int temp = arr[out];
in = out;
while (in>0 && arr[in-1]>temp) {
arr[in] = arr[in-1];
--in;
}
arr[in] = temp;
}
for (int k = 0; k < arr.length; k++) {
System.out.println(arr[k]);
}
分享到:
相关推荐
对数字6606 5241 4215 5164 6224 3781 6536 4105 2587 2548 4641 2899 8124 6624 1042 5669 471 8165 9308 6514 7708 13 4697 4110 5899 2831 3024 957 2454等进行冒泡选择插入排序
本篇文章将深入探讨并详细解析三种基本的排序算法:冒泡排序、插入排序以及选择排序,这三种算法均使用C语言实现。 ### 冒泡排序 冒泡排序是一种简单的比较排序算法,其基本思想是重复地走访过要排序的数列,一次...
第27周-第02章节-Python3.5-冒泡 选择 插入排序.avi
交换排序 选择排序 冒泡排序 插入排序
本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...
选择排序、插入排序、冒泡排序以及快速排序和归并排序的C语言实现,绝对可用
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
本资源包含了几种常见的排序算法,包括堆排序、选择排序、冒泡排序、归并排序和插入排序。这些排序算法各有特点,适用于不同的场景,并且在理解它们的工作原理后,能够帮助初学者更好地掌握编程基础。 1. **堆排序*...
采用c++描述了各种排序算法,包括选择排序 冒泡排序 插入排序 基数排序 快速排序 归并排序 。实验内容 1、创建排序类。 2、提供操作:选择排序、冒泡排序、插入排序、*基数排序、*快速排序、*归并排序。 3、*能够...
冒泡排序、选择排序和插入排序是三种基本的排序算法,它们都是在计算机科学中用于组织数据的关键技术。这些算法的实现通常用作教学示例,帮助初学者理解排序过程和时间复杂性。 **冒泡排序(Bubble Sort)**: 冒泡...
数据结构(c语言版)严蔚敏 吴伟民编著 中直接插入排序、折半排序、shell排序、冒泡排序、快速排序、选择排序、堆排序的实现、归并排序,使用c语言实现
直接插入排序、冒泡排序、快速排序、直接选择排序、堆排序和二路归并排序是计算机科学中经典的排序算法,它们在数据处理和算法学习中占有重要地位。这些排序算法各有特点,适用场景不同,下面将逐一详细介绍,并结合...
以下是关于"冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序"这七种常见排序算法的源码实现及相关知识点的详细解释: 1. **冒泡排序**:冒泡排序是一种简单的排序算法,它重复地遍历待排序的...
本话题主要探讨六种内部排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序以及堆排序。这六种排序算法各有优劣,适用于不同的场景,接下来我们将逐一进行详细阐述。 1. **直接插入排序**: 直接...
有一个模板类写出了快速排序,冒泡排序,插入排序,选择排序四种算法。用的是C++哦
在本文中,我们将深入探讨四种经典的排序算法:插入排序、选择排序、基数排序和冒泡排序,以及它们在C++语言中的实现。 **插入排序(Insertion Sort)** 插入排序是一种简单直观的排序算法,它的工作原理类似于我们...
本文将详细讲解六种经典的排序算法——合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合提供的文件名(sort.c、set.c、main.c、set.h、sort.h)推测出每个文件可能包含的代码实现。 1. **合并...
本资源提供了七大经典排序算法的实现程序,包括快速排序、冒泡排序、选择排序、归并排序、插入排序、希尔排序和堆排序。下面将逐一详细介绍这些排序算法及其原理。 1. 快速排序:由C.A.R. Hoare提出,是一种采用...
本文将深入探讨C#中常见的四种排序算法:冒泡排序、选择排序、插入排序和希尔排序,以及它们的实现细节和应用场合。 首先,我们来看**冒泡排序**。冒泡排序是一种简单的交换排序方法,它通过不断比较相邻元素并交换...
本资源包"选择排序 冒泡排序 插入排序 快速排序 堆排序.zip"聚焦于五种经典的排序算法,包括选择排序、冒泡排序、插入排序、快速排序以及堆排序。这些算法的实现语言是Objective-C,这是一种强大的面向对象的编程...