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://m.kartarina.com/article14/hgjgge.html

成都網站建設公司_創新互聯,為您提供靜態網站營銷型網站建設ChatGPT用戶體驗網站建設網站設計公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

手機網站建設
主站蜘蛛池模板: 亚洲AV无码一区二区乱子仑| 无码人妻精品一区二区三区99仓本| 亚洲一区精品无码| 一级毛片中出无码| 成人午夜亚洲精品无码网站| 无码GOGO大胆啪啪艺术| 无码天堂亚洲国产AV| 久久久久无码国产精品一区| 国产乱人伦中文无无码视频试看 | 色欲香天天综合网无码| 国产午夜无码专区喷水| AV大片在线无码永久免费| 亚洲AV中文无码乱人伦在线视色| 国产日产欧洲无码视频无遮挡| 亚洲av无码专区在线播放| 久久AV无码精品人妻出轨| 亚洲一区无码中文字幕乱码| 国产精品亚韩精品无码a在线| 久久久久亚洲AV片无码下载蜜桃 | 久久亚洲精品无码AV红樱桃| 亚洲精品无码国产片| 无码精品国产VA在线观看| 潮喷大喷水系列无码久久精品| 亚洲AV无码成人网站久久精品大| 亚洲久热无码av中文字幕| 亚洲av永久无码精品漫画| 中文字幕丰满乱子无码视频| 亚洲精品一级无码鲁丝片| 国产爆乳无码视频在线观看3| 人妻丰满熟妇岳AV无码区HD| 亚洲精品无码成人片久久| 免费无码av片在线观看| 日产无码1区2区在线观看| 国产丰满乱子伦无码专| (无码视频)在线观看| 精品久久久无码人妻字幂| 狠狠躁狠狠爱免费视频无码| r级无码视频在线观看| 亚洲成av人片在线观看天堂无码| 亚洲AV无码之国产精品| 无码人妻丰满熟妇啪啪网站牛牛 |