扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
有很多排序算法可以选择,譬如冒泡排序,插入排序,选择排序等等。可以在 维基百科里搜一下"排序算法",我就正在看这个。我给你贴个选择排序的例子。
成都创新互联是专业的新都网站建设公司,新都接单;提供成都网站建设、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行新都网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
选择排序算法的思路:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕
/*选择排序(降序)*/
static void selectSort(int[] arr)
{
int n = arr.length;
int max;
for (int i=0; in-1; i++)
{
max= i;
for (int j=i+1; jn; j++)
{
if (arr[max]arr[j])
{
max = j;
}
}
if (max != i)
{
swap(arr, max, i);
}
}
}
static void swap(int[] arr, int i, int j)
{
int tmp = 0;
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
额。。。。
用Arrays类中的sort(数组变量名)方法、就行
了。比如:int
[]a={1,2,5,1,4,7};
java.util.Arrays.sort(a);
然后在循环输出、数组元素、这样就排好序了。。。。
但是要记住,sort只能对一维数组进行排序。
排序算法,基本的高级语言都有一些提供。C语言有qsort()函数,C++有sort()函数,java语言有Arrays类(不是Array)。用这些排序时,都可以写自己的排序规则。
Java API对Arrays类的说明是:此类包含用来操作数组(比如排序和搜索)的各种方法。
实现代码如下:
package com.test.test;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Test{
public static void main(String args[]){
System.out.println("请输入数字并按回车, 输入其他字符按回车退出");
Scanner scan = new Scanner(System.in);
ListInteger list = new ArrayListInteger();
while(scan.hasNextInt()){
list.add(scan.nextInt());
scan = new Scanner(System.in);
}
Test test = new Test();
ListInteger fList = test.arrangeList(list);
test.printList(fList);
}
public ListInteger arrangeList(ListInteger list){
ListInteger rList = new ArrayListInteger();
for(int i=0;ilist.size();i++){
int k = 0;
int temp = list.get(i);
for(int j=1;jlist.size();j++){
if(templist.get(j)){
k = j;
temp = list.get(j);
}
}
if(rList.add(list.get(k))){
list.remove(k);
i--;
}
}
return rList;
}
public void printList(ListInteger list){
for(Integer i:list){
System.out.print(i+" ");
}
}
}
public static void main(String[] args) { Scanner scan = new Scanner(System.in)。
}
System.out.println("从大到小输出:");
for (int m = num.length-1; m =0; m--) {
System.out.println(num[m]);//从大到小输出
}
}
String[] str = scan.nextLine().split(" "),// 输入时以空格隔开数字。
int[] num = new int[str.length];//初始化一个整型数组,长度为你输入数字的个数。
String[] str = scan.nextLine().split(" ");// 输入时以空格隔开数字
int[] num = new int[str.length];//初始化一个整型数组,长度为你输入数字的个数
for (int i = 0; i str.length; i++) {
num[i] = Integer.parseInt(String.valueOf(str[i]));//将字符转换为int型再赋给整型数组
}
Arrays.sort(num);//升序排序
System.out.println("从小到大输出:");
for (int j = 0; j num.length; j++) {
System.out.println(num[j]);//从小到大输出
FileReader fis = new FileReader("d:/num.txt");
LineNumberReader lnr = new LineNumberReader(fis);
String numbers = lnr.readLine();
String s[] = numbers.split(",");
Integer int_v[] = new Integer[s.length];
for(int i =0; i s.length; i++)
int_v[i]=Integer.parseInt(s[i]);
java.util.Arrays.sort(int_v);
for(Integer ind:int_v)
{
System.out.println(ind);
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流