package com.canofy.structure;
import org.apache.log4j.Logger;
public class Sort {
static Logger logger=Logger.getLogger(Sort.class);
//插入排序法
private static void insertSort(int[] arraySort) {
int in, out;
for (out = 1; out < arraySort.length; out++) {
int tmp = arraySort[out];
for(in=out;in>0;in--){
if(tmp<arraySort[in-1]){
arraySort[in]=arraySort[in-1];
}else{
break;
}
}
// in = out;
// while (in > 0 && tmp <= arraySort[in - 1]) {
// arraySort[in] = arraySort[in - 1];
// in--;
// }
arraySort[in] = tmp;
}
}
//选择排序法
private static void selectSort(int[] arraySort) {
int in, out;
for (out = 0; out < arraySort.length-1; out++) {
int min = out;
for (in = out+1; in < arraySort.length; in++) {
if (arraySort[in] < arraySort[min]) { //选择最小的数
min = in;
}
}
swap(out, min, arraySort);
}
}
//冒泡排序法
private static void bubbleSortBigger(int[] arraySort) {
int in, out;
for (out = arraySort.length - 1; out > 0; out--) {
for (in = 0; in < out; in++) {
if (arraySort[in] > arraySort[in + 1]) {
//logger.info("arraySort"+in+":"+arraySort[in]);
swap(in, in + 1, arraySort);
}
}
}
}
private static void swap(int a, int b, int[] arraySort) {
int tmp = arraySort[a];
arraySort[a] = arraySort[b];
arraySort[b] = tmp;
}
public static void main(String[] args) {
Logger logger=Logger.getLogger(Sort.class);
Sort sort=new Sort();
int[] arrayBub = { 43, 36, 11, 10, 29, 58, 15, 9 };
insertSort(arrayBub);
for(int i=0;i<arrayBub.length;i++){
logger.info("arrayBub"+i+":"+arrayBub[i]);
}
}
}
分享到:
相关推荐
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...
本资源包含了几种常见的排序算法,包括堆排序、选择排序、冒泡排序、归并排序和插入排序。这些排序算法各有特点,适用于不同的场景,并且在理解它们的工作原理后,能够帮助初学者更好地掌握编程基础。 1. **堆排序*...
选择排序、插入排序、冒泡排序以及快速排序和归并排序的C语言实现,绝对可用
直接插入排序、冒泡排序、快速排序、直接选择排序、堆排序和二路归并排序是计算机科学中经典的排序算法,它们在数据处理和算法学习中占有重要地位。这些排序算法各有特点,适用场景不同,下面将逐一详细介绍,并结合...
冒泡排序、选择排序和插入排序是三种基本的排序算法,它们都是在计算机科学中用于组织数据的关键技术。这些算法的实现通常用作教学示例,帮助初学者理解排序过程和时间复杂性。 **冒泡排序(Bubble Sort)**: 冒泡...
本文将详细讨论三种基础的排序算法:选择排序、插入排序和冒泡排序。这些算法虽然简单,但在理解计算机如何执行排序操作方面起着至关重要的作用。 首先,我们来看**选择排序**(Selection Sort)。它的工作原理是...
数据结构(c语言版)严蔚敏 吴伟民编著 中直接插入排序、折半排序、shell排序、冒泡排序、快速排序、选择排序、堆排序的实现、归并排序,使用c语言实现
在本文中,我们将深入探讨四种经典的排序算法:插入排序、选择排序、基数排序和冒泡排序,以及它们在C++语言中的实现。 **插入排序(Insertion Sort)** 插入排序是一种简单直观的排序算法,它的工作原理类似于我们...
总的来说,这段代码提供了四种排序算法的实现,分别是冒泡排序、选择排序、插入排序以及Java内置的数组排序。每种排序算法都有其适用场景,理解这些算法可以帮助我们更好地解决实际问题,并根据需求选择合适的排序...
交换排序 选择排序 冒泡排序 插入排序
采用c++描述了各种排序算法,包括选择排序 冒泡排序 插入排序 基数排序 快速排序 归并排序 。实验内容 1、创建排序类。 2、提供操作:选择排序、冒泡排序、插入排序、*基数排序、*快速排序、*归并排序。 3、*能够...
本文将详细讲解六种经典的排序算法——合并排序、插入排序、希尔排序、快速排序、冒泡排序以及桶排序,并结合提供的文件名(sort.c、set.c、main.c、set.h、sort.h)推测出每个文件可能包含的代码实现。 1. **合并...
以下是关于"冒泡排序,选择排序,插入排序,希尔排序,堆排序,归并排序,快速排序"这七种常见排序算法的源码实现及相关知识点的详细解释: 1. **冒泡排序**:冒泡排序是一种简单的排序算法,它重复地遍历待排序的...
本话题主要探讨六种内部排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序以及堆排序。这六种排序算法各有优劣,适用于不同的场景,接下来我们将逐一进行详细阐述。 1. **直接插入排序**: 直接...
本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...
数据结构---直接插入排序/快速排序/选择排序/冒泡排序(详细实现算法和性能比较)
22、冒泡排序 21、折半插入排序 22、冒泡排序 23、快速排序 21、折半插入排序 22、冒泡排序 23、快速排序 24、简单选择排序 21、折半插入排序 22、冒泡排序 23、快速排序 24、简单选择排序 25、归并排序 26、堆...
根据提供的文件信息,我们可以深入探讨几种经典的排序算法:冒泡排序、直接插入排序、快速排序以及希尔排序。这些算法在数据结构与算法课程中是非常重要的基础内容,它们各自有着独特的特性和应用场景。 ### 1. ...