java选择排序

“java选择排序”相关的资料有哪些?“java选择排序”相关的范文有哪些?怎么写?下面是小编为您精心整理的“java选择排序”相关范文大全或资料大全,欢迎大家分享。

选择排序原理及Java实现

标签:文库时间:2025-03-18
【bwwdw.com - 博文网】

选择排序原理及Java实现

选择排序(Selection Sort )分为两种 简单选择排序(Simple Selection Sort) 和树形选择排序。

简单选择排序(Simple Selection Sort):

简单选择排序类似于冒泡排序(Bubble Sort) ,每次都会在剩下的元素集合中选择出一个最值出来填充到当前位置。唯一的区别是,冒泡排序在每次发现比当前值小于(或大于)时,都会交换元素的位置, 而 简单选择排序是选择剩余元素中的最值和当前位置交换数据。

比如对于元素集合R={37, 40, 38, 42, 461, 5, 7, 9, 12} 在第一趟排序中:37直接和5交换, 形成新的序列

R1={5,40,38,42,461,37,7,9,12}

在第二趟排序中:40直接和7交换, 形成新的序列

R2={5,7,38,42,461,37,40,9,12}

以此类推,直到最后一个元素(注意:在第二趟排序中,38比42小,但是他们并没有交换数据)。

以下是简单选择排序的一个Java实现版本:

public static void selectionSort(int[] data) {

if (data == null || data.leng

选择排序原理及Java实现

标签:文库时间:2025-03-18
【bwwdw.com - 博文网】

选择排序原理及Java实现

选择排序(Selection Sort )分为两种 简单选择排序(Simple Selection Sort) 和树形选择排序。

简单选择排序(Simple Selection Sort):

简单选择排序类似于冒泡排序(Bubble Sort) ,每次都会在剩下的元素集合中选择出一个最值出来填充到当前位置。唯一的区别是,冒泡排序在每次发现比当前值小于(或大于)时,都会交换元素的位置, 而 简单选择排序是选择剩余元素中的最值和当前位置交换数据。

比如对于元素集合R={37, 40, 38, 42, 461, 5, 7, 9, 12} 在第一趟排序中:37直接和5交换, 形成新的序列

R1={5,40,38,42,461,37,7,9,12}

在第二趟排序中:40直接和7交换, 形成新的序列

R2={5,7,38,42,461,37,40,9,12}

以此类推,直到最后一个元素(注意:在第二趟排序中,38比42小,但是他们并没有交换数据)。

以下是简单选择排序的一个Java实现版本:

public static void selectionSort(int[] data) {

if (data == null || data.leng

JAVA冒泡、插入、选择排序算法

标签:文库时间:2025-03-18
【bwwdw.com - 博文网】

经常在笔试(或面试)中出现的JAVA经典算法,本人特此整理,希望有用

import java.io.*;

public class Paixu {

// 冒泡排序法 public void Maopao(int a[]) { for (int i = 1; i < a.length; i++) { for (int j = 0; j < a.length - i; j++) { if (a[j] > a[j + 1]) { int temp = a[j + 1]; a[j + 1] = a[j]; a[j] = temp; } } } } // 插入排序法: public void Charu(int a[]) { for (int i = 1; i < a.length; i++) { for (int j = 0; j < i; j++) { if (a[j] > a[i]) { int temp = a[i]; for (int k = i; k > j; k--) { a[k] = a[k--]; } a[j] = temp; }

java排序方法

标签:文库时间:2025-03-18
【bwwdw.com - 博文网】

用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等。

用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等。

插入排序:

package org.rut.util.algorithm.support;

import org.rut.util.algorithm.SortUtil;

/**

* @author treeroot

* @since 2006-2-2

* @version 1.0

*/

public class InsertSort implements SortUtil.Sort{

/* (non-Javadoc)

* @see org.rut.util.algorithm.SortUtil.Sort#sort(int[])

*/

public void sort(int[] data) {

int temp;

for(int i=1;i<data.length;i++){

for(int j=i;(j>0)&&(data[j]<data[j-1]);j--){

SortUtil.sw

java快速排序、冒泡排序、插入排序

标签:文库时间:2025-03-18
【bwwdw.com - 博文网】

java里面常用的三种排序的示例源代码

package com.staconfree;
//主要要明白原理
public class Sort {
//快速排序1
private static int times = 0;
private static void QuickSort(int e[], int first, int end) {
int i = first, j = end, temp = e[first];
while (i < j) {
while (i < j && e[j] >= temp)
j--;
e[i] = e[j];
while (i < j && e[i] <= temp)
i++;
e[j] = e[i];
}
e[i] = temp;
times++;
System.out.println("第"+times+"次排序后:"+temp+"i="+i);
for (int m = 0; m < end+1; m++)
System.out.println(e[m]);
if (first < i - 1){
Syst

JAVA冒泡法排序

标签:文库时间:2025-03-18
【bwwdw.com - 博文网】

import java.util.*;

import http://www.77cn.com.cnng.*;

public class Test1 {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int[] a1=new int[]{1,2,4,12,33,78,9,3};

int i,j;

for(i=0;i<a1.length;i++){

for(j=0;j<a1.length-i-1;j++){

int temp;

if(a1[j]>a1[j+1]){

temp=a1[j];

a1[j]=a1[j+1];

a1[j+1]=temp;

}

}

}

for(int r=0;r<a1.length;r++){

System.out.println(a1[r]);

}

}

}

import java.util.*;

public class Test2{

public static void main(String[] args){

String a1="adfgrcsmnvbnmxz";

String res

java 排序算法代码大全

标签:文库时间:2025-03-18
【bwwdw.com - 博文网】

java 排序算法代码大全

2012-04-17 14:58:02| 分类: JAVA 知识积累 |字号订阅 /**

* 插入排序:直接插入排序、折半插入排序和系尔排序 * 交换排序:冒泡排序和快速排序 * 选择排序:简单选择排序和堆排序 * 归并排序:归并排序 *

* 基本思想

* 插入排序:将第N个记录插入到前面(N-1)个有序的记录当中。 * 交换排序:按照某种顺序比较两个记录的关键字大小,然后根据需要交换两个记录的位置。 * 选择排序:根据某种方法选择一个关键字最大的记录或者关键字最小的记录,放到适当的位置。 *

* 排序方法比较

* 排序方法平均时间最坏时间辅助存储

* 直接插入排序 O(N2) O(N2) O(1) * 起泡排序 O(N2) O(N2) O(1)

* 快速排序 O(Nlog2N) O(N2) O(Nlog2N) * 简单选择排序 O(N2) O(N2) O(1

Java排序算法汇总大全

标签:文库时间:2025-03-18
【bwwdw.com - 博文网】

package com.softeem.jbs.lesson4;

import java.util.Random; /**

* 排序测试类 *

* 排序算法的分类如下:

* 1.插入排序(直接插入排序、折半插入排序、希尔排序);

* 2.交换排序(冒泡泡排序、快速排序);

* 3.选择排序(直接选择排序、堆排序);

* 4.归并排序;

* 5.基数排序。 *

* 关于排序方法的选择:

* (1)若n较小(如n≤50),可采用直接插入或直接选择排序。

* 当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。

* (2)若文件初始状态基本有序(指正序),则应选用直接插人、冒泡或随机的快速排序为宜;

* (3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。 * */

public class SortTest {

/**

* 初始化测试数组的方法

堆排序求TopK(java)

标签:文库时间:2025-03-18
【bwwdw.com - 博文网】

建立一个长度为K的堆,求一组数据中最小的K个数

时间复杂度是O(N*logK)

package com.test;

public class topheap {

//取len个数据中最小的k个元素,维护一个顶元素最大的堆,不用对这个堆排序double heap[];

int k;//top k

int len;//共len个数据

topheap(int kk,int ll)

{

k = kk;

len = ll;

heap = new double[k+1];

}

/*

* 将data[pos]到data[end]的数据建堆

*/

public void toheap(int pos,int end,double h[])

{

int i = pos;

int j=i;

double value = h[i];

while(true)

{

if(2*i>end)

break;

double l = h[2*i];

j = 2*i;

double max = l;

if(2*i+1 <= end)

{

double r = h[2*i+1];

if(l<r)

{

max = r;

j = 2*i+1;

}

}

if(value<h[j])

{

h[i] = h[j];

i = j;

}

建立一个长度为K

C语言编程的排序方法Shell排序选择排序快速排序冒泡排序

标签:文库时间:2025-03-18
【bwwdw.com - 博文网】

C语言编程的排序方法Shell排序选择排序快速排序冒泡排序

2007-11-28

数据的排序是学习C语言经常碰到的问题?所谓排序是指把一组杂乱无章的数按照大小顺序排列。包括整数、实数、字符及字符串排序。C语言编程中排序的方法很多,?这里归纳较常用的几种排序方法。它们同样适合于其他高级语言。 Shell排序

Shell排序是以发明者命名的一种较快的排序方法。Shell排序基本算法思想是:将整个无序序列分割成若干小的子序分别进行插入排序。

子序列的分割方法为:将相隔某个增量h的元素构成一个子序列。在排序过程中,逐次减小这个增量,?最后当h减到1时,进行一次插入排序,排序就完成。

在本函数中,增量序列取 ht=2t-1,1 tlog2n其中n为待排序序列的长度。 例:(/* 将输入的数据排序后,输出一个测试Shell排序的主函数*/) #define SIZE 10 main() { void shell(); int d[SIZE],i;

printf(“Input %d numbers\\n\ for(i=0;i

scanf(“%d\&d[i]); shell(d,SIZE);

p