最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
java冒泡輸入法代碼 輸入一個(gè)字符串,使用冒泡法

求JAVA冒泡排序法的代碼

你好!很高興能幫到你。

創(chuàng)新互聯(lián)建站專(zhuān)注于企業(yè)營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站重做改版、杏花嶺網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、購(gòu)物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷(xiāo)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為杏花嶺等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

由于你剛學(xué)Java,所以一些編程規(guī)范是需要注意的,而我提供給你的答案看起來(lái)雖然有點(diǎn)復(fù)雜,不過(guò)采用了面向?qū)ο蟮木幊趟枷耄M量做到低耦合高內(nèi)聚,同時(shí)冒泡算法也做了升級(jí),為冒泡的高級(jí)快速排序算法,不過(guò)為了對(duì)比,也保存了傳統(tǒng)的冒泡算法。

需要講解一下,算法本身不難,難在如何做到編程規(guī)范、以及方便修改、易于修改、使得程序靈活、低耦合高內(nèi)聚。

算法部分請(qǐng)看Bubble類(lèi),里面有兩種算法,有注釋。

主類(lèi)為T(mén)estBubble,主要用于調(diào)用Bubble對(duì)象運(yùn)行算法、StuInfo對(duì)象提供學(xué)生作者信息、Info對(duì)象提供運(yùn)行過(guò)程中提示信息。

運(yùn)行結(jié)果如下(Bubble類(lèi)為核心算法類(lèi)):

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

run:

請(qǐng)輸入您將要輸入整數(shù)的個(gè)數(shù):

10

請(qǐng)輸入一串?dāng)?shù)字進(jìn)行冒泡排序,注意:每次只輸入一個(gè),輸完則回車(chē)

1:10

2:23

3:11

4:56

5:45

6:26

7:59

8:28

9:84

10:79

初始序列的數(shù)組為:

10 23 11 56 45 26 59 28 84 79

學(xué)號(hào):200815009* 班級(jí):08軟件3班 姓名:葉科良

排序好的數(shù)組為:

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;

/**

* 測(cè)試方法

* @param args

*/

public static void main(String[] args) {

TestBubble test = new TestBubble();

}

/**

* 構(gòu)造方法

* 調(diào)用初始化學(xué)生數(shù)據(jù)、接收命令行整數(shù)、展示結(jié)果3個(gè)成員方法

*/

public TestBubble() {

initMemb();

initData();

runBubble();

showResult(this.getIntArray());

}

/**

* 初始化學(xué)生數(shù)據(jù)

*/

private void initData() {

stuInfo.setStuNum("200815009*");

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

stuInfo.setStuName("葉科良");

info.setInputIntNumInfo("請(qǐng)輸入您將要輸入整數(shù)的個(gè)數(shù):");

info.setInputIntInfo("請(qǐng)輸入一串?dāng)?shù)字進(jìn)行冒泡排序,注意:每次只輸入一個(gè),輸完則回車(chē)");

info.setShowInputInfo("初始序列的數(shù)組為:");

info.setShowResultInfo("排序好的數(shù)組為:");

info.setInputErrorInfo("對(duì)不起,輸入有誤!請(qǐng)輸入整數(shù).");

}

/**

* 接收命令行整數(shù),使用冒泡算法

*/

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());

}

}

/**

* 展示結(jié)果

*/

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;//輸入整數(shù)個(gè)數(shù)

/**

* 從命令行中讀取需要輸入的整數(shù)個(gè)數(shù)

* @return 需要輸入的整數(shù)個(gè)數(shù)

*/

public int getArraySize() {

Scanner reader1 = new Scanner(System.in);

num = reader1.nextInt();

return num;

}

/**

* 指定數(shù)組大小,從命令行接收整數(shù)

* @param arraySize 數(shù)組大小

* @return 原始整數(shù)數(shù)組

*/

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;

}

/**

* 打印原始輸入數(shù)據(jù)

* @param intArray

*/

public void showAcceptAsIntArray(int[] intArray){

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

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

}

}

/**

* 取得數(shù)組大小

* @return

*/

public int getNum() {

return num;

}

}

class Bubble {

/**

* 給定一個(gè)數(shù)組,使用冒泡算法進(jìn)行排序

* @param acceptArray 給定的一個(gè)數(shù)組

* @return 排序好的數(shù)組

*/

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

int i, temp;

for (i = 0; i (acceptArray.length - 1); i++) {//兩兩進(jìn)行比較,符合條件的進(jìn)行交換

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

temp = acceptArray[i];

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

acceptArray[i + 1] = temp;

}

}

return acceptArray;

}

/**

* 快速冒泡排序算法

* @param r 輸入的整數(shù)數(shù)組

* @param first 數(shù)組第一個(gè)下標(biāo)

* @param end 數(shù)組最后一個(gè)下標(biāo)

* @return 排好序的整數(shù)數(shù)組

*/

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) { //利用遞歸反復(fù)劃分

if (first end) {

int pivot = partition(r, first, end); //調(diào)用劃分函數(shù)

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;//提示用戶(hù)輸入整數(shù)個(gè)數(shù)的消息語(yǔ)句

private String inputIntInfo;//提示用戶(hù)輸入整數(shù)的消息語(yǔ)句

private String showInputInfo;//提示顯示用戶(hù)輸入整數(shù)的消息語(yǔ)句

private String inputErrorInfo;//提示用戶(hù)輸入有誤消息語(yǔ)句

private String showResultInfo;//提示顯示排序結(jié)果

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;//學(xué)生學(xué)號(hào)

private String stuName;//學(xué)生姓名

private String stuClass;//學(xué)生班級(jí)

@Override

public String toString() {

return "學(xué)號(hào):" + getStuNum() + " 班級(jí):" + 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程序用命令行帶入?yún)?shù)的形式輸入整數(shù)再用冒泡法排序

看這段代碼吧,希望對(duì)你有幫助

java排序法

package com.cucu.test;

public class Sort {

public void swap(int a[], int i, int j) {

int tmp = a;

a = a[j];

a[j] = tmp;

}

public int partition(int a[], int low, int high) {

int pivot, p_pos, i;

p_pos = low;

pivot = a[p_pos];

for (i = low + 1; i = high; i++) {

if (a pivot) {

p_pos++;

swap(a, p_pos, i);

}

}

swap(a, low, p_pos);

return p_pos;

}

public void quicksort(int a[], int low, int high) {

int pivot;

if (low high) {

pivot = partition(a, low, high);

quicksort(a, low, pivot - 1);

quicksort(a, pivot + 1, high);

}

}

public static void main(String args[]) {

int vec[] = new int[] { 37, 47, 23, -5, 19, 56 };

int temp;

//選擇排序法(Selection Sort)

long begin = System.currentTimeMillis();

for (int k = 0; k 1000000; k++) {

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

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

if (vec[j] vec) {

temp = vec;

vec = vec[j];

vec[j] = temp;

}

}

}

}

long end = System.currentTimeMillis();

System.out.println("選擇法用時(shí)為:" + (end - begin));

//打印排序好的結(jié)果

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

System.out.println(vec);

}

// 冒泡排序法(Bubble Sort)

begin = System.currentTimeMillis();

for (int k = 0; k 1000000; k++) {

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

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

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

temp = vec[j + 1];

vec[j + 1] = vec[j];

vec[j] = temp;

}

}

}

}

end = System.currentTimeMillis();

System.out.println("冒泡法用時(shí)為:" + (end - begin));

//打印排序好的結(jié)果

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

System.out.println(vec);

}

//插入排序法(Insertion Sort)

begin = System.currentTimeMillis();

for (int k = 0; k 1000000; k++) {

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

int j = i;

while (vec[j - 1] vec) {

vec[j] = vec[j - 1];

j--;

if (j = 0) {

break;

}

}

vec[j] = vec;

}

}

end = System.currentTimeMillis();

System.out.println("插入法用時(shí)為:" + (end - begin));

//打印排序好的結(jié)果

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

System.out.println(vec);

}

//快速排序法(Quick Sort)

Sort s = new Sort();

begin = System.currentTimeMillis();

for (int k = 0; k 1000000; k++) {

s.quicksort(vec, 0, 5);

}

end = System.currentTimeMillis();

System.out.println("快速法用時(shí)為:" + (end - begin));

//打印排序好的結(jié)果

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

System.out.println(vec);

}

}

}

//------------------------------------

以下是運(yùn)行結(jié)果:

選擇法用時(shí)為:234

56

47

37

23

19

-5

冒泡法用時(shí)為:172

56

47

37

23

19

-5

插入法用時(shí)為:78

56

47

37

23

19

-5

快速法用時(shí)為:297

56

47

37

23

19

-5

Java冒泡排序法,代碼編輯無(wú)報(bào)錯(cuò)提醒,一運(yùn)行就出錯(cuò)==||。求大佬救救孩紙

你這是死記硬背的吧,錯(cuò)誤太多了,邏輯都不同。百度一下冒泡排序法,看看怎么個(gè)原理吧,知道了原理就不會(huì)寫(xiě)錯(cuò)。

附上源代碼:

ublic static void bubbleSort(int []arr) {

int[] arr = {12,23,34,56,56,56,78};

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

boolean bool = true;

for(int j=0;jarr.length-i-1;j++) {//-1為了防止溢出

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

bool = false;

int temp = arr[j];

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

arr[j+1]=temp;

}

}

if(!bool)

break;

}

}

輸入一組數(shù)組 如何用Java按冒泡排序和選擇排序輸出數(shù)組 求代碼

/**

*?2015年5月28日下午9:52:57

*?

*?@author?season?TODO?測(cè)試已通過(guò),獲取財(cái)富值

*

*/

public?class?ArrayOperation?{

/**

*?對(duì)數(shù)組?arr?進(jìn)行冒泡排序升序排序

*?

*?@param?arr

*????????????目標(biāo)數(shù)組

*/

public?static?void?bubbleToUp(int[]?arr)?{

if?(null?==?arr)//?數(shù)組為空時(shí),退出該方法

return;

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

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

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

int?temp?=?arr[j];

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

arr[j?+?1]?=?temp;

}

}

}

}

/**

*?使用選擇排序法對(duì)目標(biāo)數(shù)組進(jìn)行降序排序

*?

*?@param?arr

*????????????目標(biāo)數(shù)組

*/

public?static?void?selectToDown(int[]?arr)?{

for?(int?i?=?0;?arr?!=?null??i??arr.length;?i++)?{

int?flag?=?i;

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

if?(arr[j]??arr[flag])

flag?=?j;

}

if?(flag?!=?i)?{

int?temp?=?arr[i];

arr[i]?=?arr[flag];

arr[flag]?=?temp;

}

}

}

/**

*?遍歷數(shù)組所有元素

*?

*?@param?arr

*????????????目標(biāo)數(shù)組

*/

public?static?void?displayArray(int[]?arr)?{

System.out.println();

for?(int?num?:?arr)

System.out.print("??"?+?num);

}

public?static?void?main(String[]?args)?{

//?初始化數(shù)組

int[]?arr?=?{?20,?-878,?90,?78,?89,?-908?};

//?首先進(jìn)行冒泡排序(升序)

bubbleToUp(arr);

displayArray(arr);

//?然后進(jìn)行選擇排序(降序)

selectToDown(arr);

displayArray(arr);

}

}

冒泡法排序,java代碼 排序1 8 5 2 4 9

public?class?Test?{

public?static?void?main(String[]?args)?{

int[]?a?=?{1,?8,?5,?2,?4,?9};

//冒泡排序

for?(int?k?=?0;?k??a.length?-?1;?k++)?{

for?(int?j?=?k?+?1;?j??a.length;?j++)?{?//?升序把改成

if?(a[k]??a[j])?{

int?temp?=?a[k];

a[k]?=?a[j];

a[j]?=?temp;

}

}

}

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

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

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

}

}

}

java冒泡排序法代碼

冒泡排序是比較經(jīng)典的排序算法。代碼如下:

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

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

//交換位置

} ? ?

拓展資料:

原理:比較兩個(gè)相鄰的元素,將值大的元素交換至右端。

思路:依次比較相鄰的兩個(gè)數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個(gè)和第2個(gè)數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個(gè)數(shù)和第3個(gè)數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個(gè)數(shù),將小數(shù)放前,大數(shù)放后。重復(fù)第一趟步驟,直至全部排序完成。

第一趟比較完成后,最后一個(gè)數(shù)一定是數(shù)組中最大的一個(gè)數(shù),所以第二趟比較的時(shí)候最后一個(gè)數(shù)不參與比較;

第二趟比較完成后,倒數(shù)第二個(gè)數(shù)也一定是數(shù)組中第二大的數(shù),所以第三趟比較的時(shí)候最后兩個(gè)數(shù)不參與比較;

依次類(lèi)推,每一趟比較次數(shù)-1;

……

舉例說(shuō)明:要排序數(shù)組:int[]?arr={6,3,8,2,9,1};?

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

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

//交換位置

} ? ?

參考資料:冒泡排序原理


當(dāng)前標(biāo)題:java冒泡輸入法代碼 輸入一個(gè)字符串,使用冒泡法
分享路徑:http://fisionsoft.com.cn/article/dosogip.html