
import javautilArrays;
public class SortArray {
/
@param args
/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] nums = { 22, 33, 11, 223, 435, 54, 332, 32, 5, 65, 321, 43 };
// 第一种方法 直接用API提供的方法默认是升序排列
Arrayssort(nums);
for (int num : nums) {
Systemoutprint(num + " ");
}
Systemoutprintln();
// 第二种方法 自己写 冒泡排序
nums = new int[] { 22, 33, 11, 223, 435, 54, 332, 32, 5, 65, 321, 43,
543, 432, 7765, 321 };
for (int i = 0; i < numslength; i++) {
for (int m = i; m < numslength; m++) {
if (nums[i] > nums[m]) {
int temp = nums[i];
nums[i] = nums[m];
nums[m] = temp;
}
}
}
for (int num : nums) {
Systemoutprint(num + " ");
}
}
}public class Practice {
public void sortArry(){
int arr[]={2,1,5,8,21,12};
Systemoutprintln("冒泡排序前的结果是:");
for(int i=0;i<arrlength;i++){
Systemoutprint(" "+arr[i]);
}
for(int i=0;i<arrlength-1;i++){
for(int j=0;j<arrlength-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
Systemoutprintln("冒泡排序后的结果是:");
for(int i=0;i<arrlength;i++){
Systemoutprint(" "+arr[i]);
}
}
public static void main(String args[]){
Practice p=new Practice();
psortArry();
}
}
你看看还有啥问题就问,抱歉赶时间,我没有加注释哦,其实我感觉你把冒泡排序的思想理解了就好了,每次从数组中选择出一个最大的(也可以是最小的),放到最后,每次都找最大的,然后找n-1次,n是数组长度,你看看。int []shu ={30,80,96,45,8,35};
for (int i=0;i<(shulength-1);i++){
for (int p=0;p<(shulength-1-i);p++){
if (shu[p]>shu[p+1]){
int huan=shu[p];
shu[p]=shu[p+1];
shu[p+1]=huan;
}
}
}
//输出冒泡排序的数组
//for (int l=0;l<shulength;l++){
// Systemoutprint(shu[l]+"\t");
for (int l:shu){
//Systemoutprint(l+"\t");
Systemoutprint("第"+l+"个数为:"+l);
}
}分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:
我学JAVA完全是自学的,希望各位高手能给小第说下,解释下这个程序。
标上中文注释,拜托了~
分给的低,别嫌弃~因为我还要问还多~~~
解析:
package pck;打开pck数据包
public class Bubble {建立一个名为Bubble的类
public static void main(String args[]){建立main函数
int nums[]={99,-10,100123,18,-978,5623,463,-9,287,49};建立名为nums的数组,包含10个数,并为这10个数初始化值
int a,b,t;建立3个整型变量
Systemoutprint("Original array is:");屏幕输出Original array is:这段字符
for(int i=0;i<10;i++)循环
Systemoutprint(" "+nums[i]);屏幕上依次显示空格+nums[0]的数值空格+nums[1]……+nums[9]
Systemoutprintln();
for(a=1;a<10;a++)
for(b=10-1;b>=a;b--){
if(nums[b-1]>nums[b]){当后面的数大于前面的数是执行调换
t=nums[b-1];
nums[b-1]=nums[b];
nums[b]=t;
}
}一段for语句循环,意思是把数组里大的数吊到前面,小的放到后面
Systemoutprint("Sroted array is:");屏幕上输出Sroted array is:这段字符
for(int i=0;i<10;i++)循环语句为后面输出nums里的数作准备
Systemoutprint(" "+nums[i]);在屏幕上输出空格+nums[0]空格+nums[1]……nums[9]
Systemoutprintln();这句不太清楚,可能是输出空白行
}
}/// <summary>
/// 冒泡排序
/// 将索引前面的最大值往后面移动
///
/// 方法:首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,
/// 则交换这两个记录的值,然后比较第二个和第三个记录的关键字,一次类推,
/// 直到第n-1个记录和第n个记录的关键字比较过为止。
/// </summary>
/// <param name="list"></param>
public void BubbleSorter(int[] list)
{
int j = 1;
bool done = false;
while ((j < listLength) && (!done))
{
done = true;
for (int i = 0; i < listLength - j; i++)
{
if (list[i] > list[i + 1])
{
done = false;
int temp = list[i];
list[i] = list[i + 1];
list[i + 1] = temp;
}
}
j++;
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)