黑马程序员技术交流社区
标题:
求数组的排序方法
[打印本页]
作者:
hg3093483
时间:
2013-3-30 20:57
标题:
求数组的排序方法
本帖最后由 hg3093483 于 2013-3-31 20:03 编辑
对数组的各种排序方法很是混乱,目前只掌握了冒泡排序,求大神给列举其他排序方法并举例说明。
作者:
万蕾
时间:
2013-3-30 21:18
1.数组的查找
System.out.println("请输入学员的姓名:");
String name=in.next();
String[] arrB={"李四","张三","王五","赵六","无敌"};
boolean flag=false;
for(int i=0;i<arrB.length;i++)//这是遍历数组arrB中的值
{
if(name.equals(arrB[i]))//这是对你输入的名字进行比较,使用equals--》等于的意思
{
flag=true;
}
}
if(flag==true)//判断是否找到
{
System.out.println("找到了");
}
else
{
System.out.println("没有这个学员信息");
}
作者:
万蕾
时间:
2013-3-30 21:22
2.插入算法
System.out.println("请输入你要插入的值:");
int num1=in.nextInt();
int[] arr1={2,5,7,9,10,0};
arr1[arr1.length-1]=num1;//将int型的值插入到该int型数组指定索引的位置
for(int i=0;i<arr1.length;i++)//打印数组中的数,看效果
{
System.out.println(arr1[i]);
}
作者:
万蕾
时间:
2013-3-30 21:27
3.选择排序
int[] arr3={323,432,454,432,65,432,467,457,977,75};
for(int i=0;i<arr3.length-1;i++)
{
for(int j=i+1;j<arr3.length;j++)//for循环嵌套实现由大到小排序
{
if(arr3[i]<arr3[j])//判断并将最大值赋值给arr3[i]继续向后比较
{
int t2=arr3[i];
arr3[i]=arr3[j];
arr3[j]=t2;
}
}
}
for(int i=0;i<arr3.length;i++)//打印看效果
{
System.out.println(arr3[i]);
}
作者:
征途
时间:
2013-3-30 21:28
class selectsort
{
public static void main[Strng[] args]
{
int[] arr={};//自定义一个数组
}
//选择排序
public static void select(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])
{
int temp=arr[j];
arr[j]=arr[i];
arr[i]=temp;
}
}
}
}
//冒泡排序
public static int void boubble(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])
{
int temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
}
//二分查找法
public static int shalfsearch(int[] arr,int key)
{
int min=0;
int max=arr.length-1;\
int mid=0;
while (min<=max)
{
mid=(min+max)/2;
if (arr[mid])>key)
{
max=mid-1;
}
else if (arr[mid]<key)
{
min=mid+1;
}
else
return mid;
}
return-1;
}
//查表法
public static void arrysearch(int num,int x,int y,int z)//x代表创建数组的大小,y代表取的最低有效位的数值,z代表右移的位数.
{
char [] ch={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}
char [] c=new char[x];
int temp=0;
int leng=c.lenggth
while (num!0)
{
temp=num&y;
c[--leng]=ch[temp]
num>>>z;
}
for (int i=leng;i<c.length;i++ )
{
System.out.println(arr[i]);
}
}
}
作者:
张钶
时间:
2013-3-30 21:44
支持下!楼上的掌握的很有用。
作者:
hg3093483
时间:
2013-3-31 20:03
太好了,明天好好练一下,谢谢啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2