简单选择排序java

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

选择排序原理及Java实现

标签:文库时间:2025-03-05
【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-05
【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-05
【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-05
【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-05
【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

c语言试题库简单选择题

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

1.下列语句中符合C语言语法的赋值语句是

(A) a=7+b+c=a+7; (B) a=7+b++=a+7; (C) a=7+b,b++,a+7 (D) a=7+b,c=a+7;

2.在C语言中,要求运算数必须是整型的运算符是

(A) % (B) / (C) < (D) !

3.以下有4组用户标识符,其中合法的一组是

(A) For (B) 4d (C) f2_G3 (D) WORD

4. 在C语言中,形参的缺省存储类是

(A) auto (B) register (C) static (D) extern

5. 以下不能正确进行字符串赋初值的语句是

(A) char str[5]="good!"; (B) char str[]="good!";

(C) char *str="good!"; (D) char str[5]={‘g',‘o',‘o',‘d'};

6.若定义:int a=511,*b=&a;, 则printf("%d\n",*b);的输出结果为

(A) 无确定值 (B) a的地址

JAVA冒泡法排序

标签:文库时间:2025-03-05
【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-05
【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-05
【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-05
【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