package com.mzh.common;
public class TestSort {
/**
* 冒泡排序
* @param arr
* @return
*/
public static int[] bubbleSort(int[] arr){
int temp;
for(int i=0;i<arr.length;i++){
for(int j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
swap(arr,i,j);
}
}
}
return arr;
}
/**
* 选择排序
* @param arr
* @return
*/
public static int[] selectSort(int[] arr){
int minIndex=0;
for(int i=0;i<arr.length;i++){
minIndex=i;
for(int j=i+1;j<arr.length;j++){
if(arr[minIndex]>arr[j]){
minIndex=j;
}
}
swap(arr,i,minIndex);
}
return arr;
}
/**
* 交换两个元素的位置
* @param arr
* @param x
* @param y
*/
public static void swap(int[] arr,int x,int y){
int temp=0;
temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
/**
* 打印数组元素
* @param arr
*/
public static void printArr(int[] arr){
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
}
/**
* 测试
* @param args
*/
public static void main(String[] args){
int[] arr={2,6,3,8,7,1,5,9,11,30,-2,-10,0,34,70};
arr=selectSort(arr);
printArr(arr);
}
}
分享到:
相关推荐
快速排序和冒泡排序是两种常见的排序算法,它们在计算机科学中扮演着重要的角色,特别是在数据处理和优化程序性能方面。本篇文章将深入探讨这两种排序算法的原理、效率以及它们在C#编程语言中的实现。 首先,让我们...
除了冒泡排序,代码还展示了其他两种经典的排序算法:选择排序和插入排序。 选择排序的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。...
本文将深入探讨四种在C++中实现的常见排序算法:插入排序、冒泡排序、堆排序和快速排序。这些算法各有特点,适用于不同的场景,理解并掌握它们对于提升编程能力至关重要。 1. **插入排序**: 插入排序是一种简单的...
在C#编程中,排序算法是数据处理和分析的基础,常见的有冒泡排序、插入排序、选择排序和希尔排序。这四种排序算法各有特点,适用不同的场景。 1. **冒泡排序**: 冒泡排序是一种简单的排序算法,通过不断交换相邻...
排序算法是计算机科学中的核心...在实际应用中,我们需要根据具体需求和数据特性来选择合适的排序算法。开源中国社区共享的这些代码资源,提供了很好的学习和实践平台,有助于我们理解和掌握这些排序算法的实现细节。
本文将探讨如何使用这两种语言实现几种基本的排序算法:冒泡排序、选择排序,以及两种全比较排序(并行和串行)。 首先,让我们了解一下排序算法。排序是计算机科学中最基础的操作之一,它涉及到将一组数据按照特定...
冒泡排序和选择排序适用于小规模数据;归并排序和堆排序在稳定性及处理大数据量上表现良好;插入排序和希尔排序在部分有序数据时有优势。理解并掌握这些排序算法,对于编程和算法设计能力的提升有着重要作用。
本话题主要探讨六种内部排序算法:直接插入排序、希尔排序、冒泡排序、快速排序、选择排序以及堆排序。这六种排序算法各有优劣,适用于不同的场景,接下来我们将逐一进行详细阐述。 1. **直接插入排序**: 直接...
冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python...
在计算机科学中,排序算法是最基本也是最重要的算法之一。冒泡排序是一种简单的排序算法,它的主要思想是通过不断地比较相邻元素,并交换它们以达到排序的目的。在C语言中,冒泡排序的实现非常简单,下面我们将详细...
C语言排序算法之冒泡排序
C++ 排序算法之冒泡排序
本篇文章将深入探讨标题和描述中提到的九大排序算法:快速排序、冒泡排序、堆排序、希尔排序、直接插入排序、直接选择排序、基数排序、箱排序和桶排序。 1. **快速排序**:快速排序是一种基于分治策略的排序算法,...
冒泡排序算法是一种简单的排序算法,基本思想是通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的大小,若发现...在排序算法的学习过程中,冒泡排序可以作为认识和掌握其他更复杂排序算法的起点。
经典C语言排序算法 ...冒泡排序、选择排序和插入法排序都是基本的排序算法,虽然它们的效率不高,但它们的实现简单易懂,易于学习和理解。同时,这些算法也可以作为其他排序算法的基础,例如快速排序和归并排序等。
冒泡排序是最基础的排序算法之一,通过重复遍历待排序序列,比较相邻元素并交换位置来实现排序。如果前一个元素大于后一个元素,它们就会交换位置,这样最大的元素会逐渐"冒泡"到序列末尾。时间复杂度为O(n^2)。 2...
交换排序可以看作是一种广义的排序策略,其中冒泡排序和选择排序都可以归类于这一大类。其核心在于两两比较相邻元素,如果顺序错误则进行交换,直至整个序列有序。 ### 4. 希尔排序(Shell Sort) 希尔排序是插入...
C++排序算法之冒泡排序
本节将深入探讨两种常见的排序算法:冒泡排序和快速排序。 首先,我们来详细讲解冒泡排序。冒泡排序是一种简单直观的排序算法,它的基本思想是通过重复遍历待排序的数列,依次比较相邻元素并交换位置,使得较大的...
本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...