日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java实现数组排序代码_Java使用选择排序法对数组排序实现代码

發(fā)布時間:2024/7/19 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现数组排序代码_Java使用选择排序法对数组排序实现代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

編寫程序,實現(xiàn)將輸入的字符串轉(zhuǎn)換為一維數(shù)組,并使用選擇排序法對數(shù)組進(jìn)行排序。

思路如下:

點擊"生成隨機(jī)數(shù)"按鈕,創(chuàng)建Random隨機(jī)數(shù)對象;

使用JTextArea的setText()方法清空文本域;

創(chuàng)建一個整型一維數(shù)組,分配長度為10的空間;

初始化數(shù)組元素,使用Random類的nextInt()方法生成50以內(nèi)的隨機(jī)數(shù),使用JTextArea類的append()方法把數(shù)組元素顯示在文本域控件中;

點擊"排序"按鈕,使用JTextArea類的setText()方法清空文本域;

使用雙層for循環(huán),對從第二個元素到最后一個元素的每一趟排序,對該趟排序所涉及的元素進(jìn)行遍歷,查找最大值對應(yīng)的數(shù)組下標(biāo);

交換在位置array.length-i和index(最大值)兩個數(shù),使得每趟排序后找到的最大值都在該趟排序所涉及的數(shù)列的最后;

使用for循環(huán)遍歷數(shù)組,使用Random類的append方法把排序后的數(shù)組元素顯示到文本域中。

代碼如下:

import java.awt.EventQueue;

import java.awt.GridBagConstraints;

import java.awt.GridBagLayout;

import java.awt.Insets;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Random;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.border.EmptyBorder;

public class SelectSort extends JFrame {

/**

*

*/

private static final long serialVersionUID = 6824538613659403529L;

private JPanel contentPane;

/**

* Launch the application.

*/

public static void main(String[] args) {

EventQueue.invokeLater(new Runnable() {

public void run() {

try {

SelectSort frame = new SelectSort();

frame.setVisible(true);

} catch (Exception e) {

e.printStackTrace();

}

}

});

}

/**

* Create the frame.

*/

public SelectSort() {

setTitle("使用選擇排序法對數(shù)組排序");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setBounds(100, 100, 450, 300);

contentPane = new JPanel();

contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));

setContentPane(contentPane);

GridBagLayout gbl_contentPane = new GridBagLayout();

gbl_contentPane.columnWidths = new int[] { 0, 0 };

gbl_contentPane.rowHeights = new int[] { 0, 0, 0, 0, 0 };

gbl_contentPane.columnWeights = new double[] { 1.0, Double.MIN_VALUE };

gbl_contentPane.rowWeights = new double[] { 1.0, 0.0, 1.0, 0.0,

Double.MIN_VALUE };

contentPane.setLayout(gbl_contentPane);

JScrollPane scrollPane = new JScrollPane();

GridBagConstraints gbc_scrollPane = new GridBagConstraints();

gbc_scrollPane.insets = new Insets(0, 0, 5, 0);

gbc_scrollPane.fill = GridBagConstraints.BOTH;

gbc_scrollPane.gridx = 0;

gbc_scrollPane.gridy = 0;

contentPane.add(scrollPane, gbc_scrollPane);

textArea1 = new JTextArea();

scrollPane.setViewportView(textArea1);

JButton button = new JButton("生成隨機(jī)數(shù)");

button.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

do_button_actionPerformed(e);

}

});

GridBagConstraints gbc_button = new GridBagConstraints();

gbc_button.insets = new Insets(0, 0, 5, 0);

gbc_button.gridx = 0;

gbc_button.gridy = 1;

contentPane.add(button, gbc_button);

JScrollPane scrollPane_1 = new JScrollPane();

GridBagConstraints gbc_scrollPane_1 = new GridBagConstraints();

gbc_scrollPane_1.insets = new Insets(0, 0, 5, 0);

gbc_scrollPane_1.fill = GridBagConstraints.BOTH;

gbc_scrollPane_1.gridx = 0;

gbc_scrollPane_1.gridy = 2;

contentPane.add(scrollPane_1, gbc_scrollPane_1);

textArea2 = new JTextArea();

scrollPane_1.setViewportView(textArea2);

JButton button_1 = new JButton("排序");

button_1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

do_button_1_actionPerformed(e);

}

});

GridBagConstraints gbc_button_1 = new GridBagConstraints();

gbc_button_1.gridx = 0;

gbc_button_1.gridy = 3;

contentPane.add(button_1, gbc_button_1);

}

private int[] array = new int[10];

private JTextArea textArea1;

private JTextArea textArea2;

protected void do_button_actionPerformed(ActionEvent e) {

Random random = new Random();// 創(chuàng)建隨機(jī)數(shù)對象

textArea1.setText("");// 清空文本域

for (int i = 0; i < array.length; i++) {// 初始化數(shù)組元素

array[i] = random.nextInt(50);// 生成50以內(nèi)的隨機(jī)數(shù)

textArea1.append(array[i]+"? ");// 把數(shù)組元素顯示的文本域控件中

}

}

protected void do_button_1_actionPerformed(ActionEvent e) {

textArea2.setText("");// 清空文本域

int index;

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

index = 0;

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

if (array[j] > array[index]) {

index = j;// 查找最大值

}

}

// 交換在位置array.length-i和index(最大值)兩個數(shù)

int temp = array[array.length - i];

array[array.length - i] = array[index];

array[index] = temp;

}

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

textArea2.append(array[i] + "? ");// 把排序后的數(shù)組元素顯示到文本域中

}

}

}

效果如圖:

總結(jié)

以上是生活随笔為你收集整理的java实现数组排序代码_Java使用选择排序法对数组排序实现代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。