网站建设资讯

NEWS

网站建设资讯

java冒泡排序倒序代码 java冒泡排序代码简单

Java冒泡排序法

public class MySort {

在日照等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、成都网站制作 网站设计制作按需求定制设计,公司网站建设,企业网站建设,高端网站设计,营销型网站建设,外贸营销网站建设,日照网站建设费用合理。

public static void main(String[] args) {

MySort sort = new MySort();            int[] arr  = new int[]{ };            sort sort(arr);            for(int i : arr){                System out print(i+ );            }        }

public void sort(int[] targetArr){//小到大的排序

int temp = ;            for(int i = ;itargetArr length;i++){                for(int j = i;jtargetArr length;j++){

if(targetArr[i]targetArr[j]){

/*//方法一                         temp = targetArr[i];                        targetArr[i] = targetArr[j];                        targetArr[j] = temp;

//方法二:                        targetArr[i] = targetArr[i] + targetArr[j];                        targetArr[j] = targetArr[i] targetArr[j];                        targetArr[i] = targetArr[i] targetArr[j];*/

//方法三                         targetArr[i] = targetArr[i]^targetArr[j];                        targetArr[j] = targetArr[i]^targetArr[j];                        targetArr[i] = targetArr[i]^targetArr[j];

}

}            }        }

}    测试     //拿 位来表示吧(正规 位)    Java代码

int a = b = ;              a = a + b;//               b = a b;//               a = a b;// =              System out println(a+   +b);     //**********************************************************             int c= ;//              int d= ;//              c=c^d;//                 System out println(c);             d=c^d;//                 c=c^d;//   

lishixinzhi/Article/program/Java/hx/201311/25774

用java语言用冒泡排序如何写代码啊,求大神,求仔细代码。

纯手工,随意写的,希望对你有帮助!!

public class MaoPao{

//定义一个整形数组

int[] a = new int[10];

//中间数

int flag = 0;

//g给数组赋值

a = {14,12,21,52,36,78,45,31,33,98};

//判断

for(int i=0;ia.length;i++){

for(int j=i+1;ia.length;i++){

//交换位置,最大的放第一个

if(a[i]a[j]){

flag = a[i];

a[i] = a[j];

a[j] = a[i];

}

}

}

//输出数组

for(int i=0;ia.length;i++){

System.out.println(a[i]);

}

}

Java几种简单的排序源代码

给你介绍4种排序方法及源码,供参考

1.冒泡排序

主要思路: 从前往后依次交换两个相邻的元素,大的交换到后面,这样每次大的数据就到后面,每一次遍历,最大的数据到达最后面,时间复杂度是O(n^2)。

public static void bubbleSort(int[] arr){

for(int i =0; i  arr.length - 1; i++){

for(int j=0; j  arr.length-1; j++){

if(arr[j]  arr[j+1]){

arr[j] = arr[j]^arr[j+1];

arr[j+1] = arr[j]^arr[j+1];

arr[j] = arr[j]^arr[j+1];

}

}

}

}

2.选择排序

主要思路:每次遍历序列,从中选取最小的元素放到最前面,n次选择后,前面就都是最小元素的排列了,时间复杂度是O(n^2)。

public static void selectSort(int[] arr){

for(int i = 0; i arr.length -1; i++){

for(int j = i+1; j  arr.length; j++){

if(arr[j]  arr[i]){

arr[j] = arr[j]^arr[i];

arr[i] = arr[j]^arr[i];

arr[j] = arr[j]^arr[i];

}

}

}

}

3.插入排序

主要思路:使用了两层嵌套循环,逐个处理待排序的记录。每个记录与前面已经排好序的记录序列进行比较,并将其插入到合适的位置,时间复杂度是O(n^2)。

public static void insertionSort(int[] arr){

int j;

for(int p = 1; p  arr.length; p++){

int temp = arr[p];   //保存要插入的数据

//将无序中的数和前面有序的数据相比,将比它大的数,向后移动

for(j=p; j0  temp arr[j-1]; j--){

arr[j] = arr[j-1];

}

//正确的位置设置成保存的数据

arr[j] = temp;

}

}

4.希尔排序

主要思路:用步长分组,每个分组进行插入排序,再慢慢减小步长,当步长为1的时候完成一次插入排序,  希尔排序的时间复杂度是:O(nlogn)~O(n2),平均时间复杂度大致是O(n^1.5)

public static void shellSort(int[] arr){

int j ;

for(int gap = arr.length/2; gap  0 ; gap/=2){

for(int i = gap; i  arr.length; i++){

int temp = arr[i];

for(j = i; j=gap  temparr[j-gap]; j-=gap){

arr[j] = arr[j-gap];

}

arr[j] = temp;

}

}

}

求JAVA冒泡排序法的代码

你好!很高兴能帮到你。

由于你刚学Java,所以一些编程规范是需要注意的,而我提供给你的答案看起来虽然有点复杂,不过采用了面向对象的编程思想,尽量做到低耦合高内聚,同时冒泡算法也做了升级,为冒泡的高级快速排序算法,不过为了对比,也保存了传统的冒泡算法。

需要讲解一下,算法本身不难,难在如何做到编程规范、以及方便修改、易于修改、使得程序灵活、低耦合高内聚。

算法部分请看Bubble类,里面有两种算法,有注释。

主类为TestBubble,主要用于调用Bubble对象运行算法、StuInfo对象提供学生作者信息、Info对象提供运行过程中提示信息。

运行结果如下(Bubble类为核心算法类):

************************************

run:

请输入您将要输入整数的个数:

10

请输入一串数字进行冒泡排序,注意:每次只输入一个,输完则回车

1:10

2:23

3:11

4:56

5:45

6:26

7:59

8:28

9:84

10:79

初始序列的数组为:

10 23 11 56 45 26 59 28 84 79

学号:200815009* 班级:08软件3班 姓名:叶科良

排序好的数组为:

10 11 23 26 28 45 56 59 79 84

源代码如下:

***************************************************

package testBubble;

import java.io.Reader;

import java.util.Scanner;

/**

*

* @author yekeliang

*/

public class TestBubble {

private CommandLineBubbleRunner commandLineBubbleRunner;

private int arraySize;

private int[] intArray;

private StuInfo stuInfo;

private Info info;

/**

* 测试方法

* @param args

*/

public static void main(String[] args) {

TestBubble test = new TestBubble();

}

/**

* 构造方法

* 调用初始化学生数据、接收命令行整数、展示结果3个成员方法

*/

public TestBubble() {

initMemb();

initData();

runBubble();

showResult(this.getIntArray());

}

/**

* 初始化学生数据

*/

private void initData() {

stuInfo.setStuNum("200815009*");

stuInfo.setStuClass("08软件3班");

stuInfo.setStuName("叶科良");

info.setInputIntNumInfo("请输入您将要输入整数的个数:");

info.setInputIntInfo("请输入一串数字进行冒泡排序,注意:每次只输入一个,输完则回车");

info.setShowInputInfo("初始序列的数组为:");

info.setShowResultInfo("排序好的数组为:");

info.setInputErrorInfo("对不起,输入有误!请输入整数.");

}

/**

* 接收命令行整数,使用冒泡算法

*/

private void runBubble() {

try{

System.out.println(info.getInputIntNumInfo());

setArraySize(getCommandLineBubbleRunner().getArraySize());

System.out.println(info.getInputIntInfo());

setIntArray(getCommandLineBubbleRunner().getAcceptAsIntArray(getArraySize()));

System.out.println(info.getShowInputInfo());

getCommandLineBubbleRunner().showAcceptAsIntArray(getIntArray());

Bubble.quick(getIntArray());

} catch(java.util.InputMismatchException e) {

System.out.println(info.getInputErrorInfo());

}

}

/**

* 展示结果

*/

private void showResult(int intArray[]) {

System.out.println("\n" + stuInfo.toString());

System.out.println(info.getShowResultInfo());

for (int i = 0; i intArray.length; i++) {

System.out.print(intArray[i] + " ");

}

}

private void initMemb() {

stuInfo = new StuInfo();

info = new Info();

commandLineBubbleRunner = new CommandLineBubbleRunner();

}

public CommandLineBubbleRunner getCommandLineBubbleRunner() {

return commandLineBubbleRunner;

}

public void setCommandLineBubbleRunner(CommandLineBubbleRunner commandLineBubbleRunner) {

this.commandLineBubbleRunner = commandLineBubbleRunner;

}

public int getArraySize() {

return arraySize;

}

public void setArraySize(int arraySize) {

this.arraySize = arraySize;

}

public int[] getIntArray() {

return intArray;

}

public void setIntArray(int[] intArray) {

this.intArray = intArray;

}

private void getStuInfo() {}

}

/**

*

* @author 叶科良

*/

class CommandLineBubbleRunner {

public int num;//输入整数个数

/**

* 从命令行中读取需要输入的整数个数

* @return 需要输入的整数个数

*/

public int getArraySize() {

Scanner reader1 = new Scanner(System.in);

num = reader1.nextInt();

return num;

}

/**

* 指定数组大小,从命令行接收整数

* @param arraySize 数组大小

* @return 原始整数数组

*/

public int[] getAcceptAsIntArray(int arraySize) {

int[] acceptArray = new int[arraySize];

Scanner reader = new Scanner(System.in);

for (int i = 0; i getNum(); i++) {

System.out.print((i + 1) + ":");

acceptArray[i] = reader.nextInt();

}

return acceptArray;

}

/**

* 打印原始输入数据

* @param intArray

*/

public void showAcceptAsIntArray(int[] intArray){

for (int i = 0; i getNum(); i++) {

System.out.print(intArray[i] + " ");

}

}

/**

* 取得数组大小

* @return

*/

public int getNum() {

return num;

}

}

class Bubble {

/**

* 给定一个数组,使用冒泡算法进行排序

* @param acceptArray 给定的一个数组

* @return 排序好的数组

*/

public static int[] getResultAsIntArray(int[] acceptArray) {

int i, temp;

for (i = 0; i (acceptArray.length - 1); i++) {//两两进行比较,符合条件的进行交换

if (acceptArray[i] acceptArray[i + 1]) {

temp = acceptArray[i];

acceptArray[i] = acceptArray[i + 1];

acceptArray[i + 1] = temp;

}

}

return acceptArray;

}

/**

* 快速冒泡排序算法

* @param r 输入的整数数组

* @param first 数组第一个下标

* @param end 数组最后一个下标

* @return 排好序的整数数组

*/

public static int partition(int[] r, int first, int end) {

int i, j;

i = first;

j = end;

while (i j) {

while (i j r[i] = r[j]) {

j--;

}

if (i j) {

int temp;

temp = r[i];

r[i] = r[j];

r[j] = temp;

}

}

return i;

}

public static void quick(int[] r, int first, int end) { //利用递归反复划分

if (first end) {

int pivot = partition(r, first, end); //调用划分函数

quick(r, first, pivot - 1);

quick(r, pivot + 1, end);

}

}

public static int[] quick(int[] r){

quick(r,0,r.length-1);

return r;

}

}

class Info {

private String inputIntNumInfo;//提示用户输入整数个数的消息语句

private String inputIntInfo;//提示用户输入整数的消息语句

private String showInputInfo;//提示显示用户输入整数的消息语句

private String inputErrorInfo;//提示用户输入有误消息语句

private String showResultInfo;//提示显示排序结果

public String getInputIntNumInfo() {

return inputIntNumInfo;

}

public void setInputIntNumInfo(String inputIntNumInfo) {

this.inputIntNumInfo = inputIntNumInfo;

}

public String getInputIntInfo() {

return inputIntInfo;

}

public void setInputIntInfo(String inputIntInfo) {

this.inputIntInfo = inputIntInfo;

}

public String getShowInputInfo() {

return showInputInfo;

}

public void setShowInputInfo(String showInputInfo) {

this.showInputInfo = showInputInfo;

}

public String getInputErrorInfo() {

return inputErrorInfo;

}

public void setInputErrorInfo(String inputErrorInfo) {

this.inputErrorInfo = inputErrorInfo;

}

public String getShowResultInfo() {

return showResultInfo;

}

public void setShowResultInfo(String showResultInfo) {

this.showResultInfo = showResultInfo;

}

}

class StuInfo {

private String stuNum;//学生学号

private String stuName;//学生姓名

private String stuClass;//学生班级

@Override

public String toString() {

return "学号:" + getStuNum() + " 班级:" + getStuClass() + " 姓名:" + getStuName();

}

public String getStuNum() {

return stuNum;

}

public void setStuNum(String stuNum) {

this.stuNum = stuNum;

}

public String getStuName() {

return stuName;

}

public void setStuName(String stuName) {

this.stuName = stuName;

}

public String getStuClass() {

return stuClass;

}

public void setStuClass(String stuClass) {

this.stuClass = stuClass;

}

}

求冒泡排序的java代码

方法一:

package

basic.javastu;

public

class

NumberTest

{

/**

*

实现冒泡程序1

*/

public

static

void

main(String[]

args)

{

//

TODO

Auto-generated

method

stub

int[]

numb=new

int[]{3,42,57,1,32,24};

int

len=numb.length;

int

i,j;

int

temp;

System.out.println("排序前的数组各个值:");

for(i=0;ilen;i++)

{

System.out.print(numb[i]+"\t");

}

System.out.println("\n");

for(i=1;i=len;i++)

{

for(j=len-1;j=1;j--)

{

if(numb[j]numb[j-1])

{

temp=numb[j];

numb[j]=numb[j-1];

numb[j-1]=temp;

}

}

}

System.out.println("排序后的数组各个值:");

for(i=0;ilen;i++)

{

System.out.print(numb[i]+"\t");

}

}

}

方法二:

package

basic.javastu;

public

class

NumberTest2

{

/**

*

实现冒泡程序2

*/

public

static

void

main(String[]

args)

{

//

TODO

Auto-generated

method

stub

int[]

numb=new

int[]{3,42,57,1,32,24};

int

leng=numb.length;

System.out.println("排序前的数组各个值:");

for(int

i=0;ileng;i++)

{

System.out.print(numb[i]+"\t");

}

System.out.println("\n");

swap(numb);

System.out.println("数组排序后:");

for(int

i=0;ileng;i++)

{

System.out.print(numb[i]+"\t");

}

}

private

static

int[]

swap(int[]

numb)

{

int

n2[]=numb;

int

len=n2.length;

int

i,j;

int

temp;

for(i=1;i=len;i++)

{

for(j=len-1;j=1;j--)

{

if(n2[j]n2[j-1])

{

temp=n2[j];

n2[j]=n2[j-1];

n2[j-1]=temp;

}

}

}

return

n2;

}

}

方法三:

package

basic.javastu;

public

class

NumberTest3

{

/**

*

实现冒泡程序2

*/

public

static

void

main(String[]

args)

{

//

TODO

Auto-generated

method

stub

int[]

numb=new

int[]{3,42,57,1,32,24};

int

leng=numb.length;

System.out.println("排序前的数组各个值:");

for(int

i=0;ileng;i++)

{

System.out.print(numb[i]+"\t");

}

System.out.println("\n");

swap(numb);

System.out.println("数组排序后:");

for(int

i=0;ileng;i++)

{

System.out.print(numb[i]+"\t");

}

}

private

static

void

swap(int[]

numb)

{

int

len=numb.length;

int

i,j;

int

temp;

for(i=1;i=len;i++)

{

for(j=len-1;j=1;j--)

{

if(numb[j]numb[j-1])

{

temp=numb[j];

numb[j]=numb[j-1];

numb[j-1]=temp;

}

}

}

}

}

java冒泡排序代码

冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

冒泡排序算法的运作如下:

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

public class BubbleSort{  

public static void main(String[] args){  

int score[] = {67, 69, 75, 87, 89, 90, 99, 100};  

for (int i = 0; i  score.length -1; i++){    //最多做n-1趟排序  

for(int j = 0 ;j  score.length - i - 1; j++){    //对当前无序区间score[0......length-i-1]进行排序(j的范围很关键,这个范围是在逐步缩小的)  

if(score[j]  score[j + 1]){    //把小的值交换到后面  

int temp = score[j];  

score[j] = score[j + 1];  

score[j + 1] = temp;  

}  

}              

System.out.print("第" + (i + 1) + "次排序结果:");  

for(int a = 0; a  score.length; a++){  

System.out.print(score[a] + "\t");  

}  

System.out.println("");  

}  

System.out.print("最终排序结果:");  

for(int a = 0; a  score.length; a++){  

System.out.print(score[a] + "\t");  

}  

}  

}


网页名称:java冒泡排序倒序代码 java冒泡排序代码简单
标题网址:http://njwzjz.com/article/hgjgge.html