SortThis=new int[]
{
111,120,013,121,
29,.45,53,67,
71,2,405,76,
23,17,91,83,
29,91,17,53,
48,51,21,0,
};public void SortArray()
{
char c;
For(int a=0;a<num_elements-1;a++)
{
for(b=a;b<num_elements;b++)
{
if(SortThis[a]>SortThis(b))
{
c=SortThis[b];
SortThis[b]=SortThis[a];
SortThis[a]=c;
}
}
}
}
请指出上述代码中的错误, 并给出解决的方案.很简单, 请各位帮帮忙.
{
111,120,013,121,
29,.45,53,67,
71,2,405,76,
23,17,91,83,
29,91,17,53,
48,51,21,0,
};public void SortArray()
{
char c;
For(int a=0;a<num_elements-1;a++)
{
for(b=a;b<num_elements;b++)
{
if(SortThis[a]>SortThis(b))
{
c=SortThis[b];
SortThis[b]=SortThis[a];
SortThis[a]=c;
}
}
}
}
请指出上述代码中的错误, 并给出解决的方案.很简单, 请各位帮帮忙.
解决方案 »
- 动态代理小模拟总是找不到错误!小菜···
- jfreechart的问题(画两条曲线),在线等待,急!!!!!!!!!!!!
- java新手的问题
- 急死我了,关于分页请教高手
- jog4j问题:使用eclipse没有问题,使用命令行运行就出现java.lang.NoClassDefFoundError: org/apache/log4j/Logger
- JTABLE中对某一列的操作
- 跪求!两堆数据的比较
- 求高手点拨:“Java代码中的变量作用域”的问题...
- 比较菜鸟的问题session.getValue("XX")和session.getAttribute("XX")有什么区别吗
- 天冷了,csdn不要冷。散分
- 我要怎么把一个文件从默认的unicode编码变成gb_2312编码啊?谢谢!
- 用Java Scoket连接服务器怎么没反应?有代码,很短。
{
int temp,j,i;
for(i = 0;i<k.length;i++)
for(j = i+1;j<k.length;j++)
{
if(k[j] < k[i])
{
temp = k[j];
k[j] = k[i];
k[i] = temp;
}
}
}
static int[] bubbleSort(int[] a) {
boolean change = false;
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length - i - 1; j++)
if (a[j] > a[j + 1]) {
int temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
change = true;
}
if (!change)
break;
}
return a;
}
* 冒泡排序,又称气泡排序,是一种简单的排序方法。其基本思想是通过相邻元素
* 之间的比较和交换使得排序码较小的元素逐渐从底部移向顶部,即从下标较大的
* 单元移向下标较小的单元,就向水底下的气泡一样逐渐向上冒。
*/
public void fun09_02bubble_sort() {
int[] a = { 7, 5, 2, 6, 8, 74, 1, 25, 69, 8 };
Conica.print(a);
for (int i = 0; i < a.length - 1; i++) {
for (int j = a.length - 1; j > i; j--) {
if (a[j] < a[j - 1]) {
int temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
Conica.print(a);
//1,2,5,6,7,8,8,25,69,74
}
} /*
* 沉石排序,又称沉没排序,是一种简单的排序方法。其基本思想是通过相邻元素
* 之间的比较和交换使得排序码较大的元素逐渐从顶部移向底部,即从下标较小的
* 单元移向下标较大的单元,就向往水里扔石头一样逐渐往下沉。
*/
public void fun09_04sink_stone() {
int[] a = { 7, 5, 2, 6, 8, 74, 1, 25, 69, 8 };
Conica.print(a);
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - i - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
Conica.print(a);
//1,2,5,6,7,8,8,25,69,74
}
}
/*
* 插入排序,其方法是:把数组a[0]-a[n-1]中n个元素看作为一个有序表和
* 一个无序表,开始时有序表中只有一个元素a[0](一个元素自然为有序的),
* 无序表中包含有n-1个元素a[1]-a[n-1],以后每次从无序表 中取出第一个
* 元素,把它插入到前面有序表中的合适位置,使之成为一个新的有序表,这样
* 有序表就增加了一个元素,无序表就减少了一个元素;经过n-1次后,有序表
* 中含有n个元素,无序表变为一个空表,整个数组就成为了一个有序表。
*/
public void fun09_01insert_sort() {
int[] a = { 7, 5, 2, 6, 8, 74, 1, 25, 69, 8 };
Conica.print(a);
for (int i = 1; i < a.length; i++) {
int x = a[i],j;
for(j=i-1;j>=0;j--){
if(x<a[j]){
a[j+1] = a[j];
}else{
break;
}
}
a[j+1] = x;
Conica.print(a);
//1,2,5,6,7,8,8,25,69,74
}
} /*
* 直接选择排序,它是一种简单的排序方法。它每次从待排序的区间中选择出
* 具有最小排序码的元素,把该元素与该区间的第一个元素交换位置。
*/
public void fun09_03direct_select_sort() {
int[] a = { 7, 5, 2, 6, 8, 74, 1, 25, 69, 8 };
Conica.print(a);
for (int i = 0; i < a.length-1; i++) {
int min = a[i];
for(int j = i+1;j<a.length - 1; j++){
if(a[j]<min){
int temp = a[j];
a[j] = min;
min = temp;
}
}
a[i] = min;
Conica.print(a);
//1,2,5,6,7,8,8,25,69,74
}
}
建议看一下java类库的算法
不知道是你故意放的,还是不小心敲错了
For不能大写,应该是for,另外注意java的变量命名规则,一般的几个字母合成的变量名,则首词的第一个字母小写
另外你的选择排序概念有问题
不是for(int i=0;i<len-1;i++)
for(int j=0;j<len;j++)
而是for(int i=0;i<len-1;i++)
for(int j=i+1;j<len;j++)
还有既然sortThis数组是int型,中间变量c 就应该是int型,我不知道你是不是想试试把int转储在char中会不会有精度损失之类的怪异想法,但是放在此处实在不宜
我匆匆写了一个,也不知道合不合你的意import java.security.InvalidParameterException;public class ChooseSort {
public final static int NON_DESCENDING = 0; public final static int NON_ASCENDING = 1; private static boolean isNeededChange(int i, int j, int type) {
if (NON_DESCENDING == type)
return i > j;
if (NON_ASCENDING == type)
return i < j;
throw new InvalidParameterException();
} private static void swap(int[] a, int i, int j) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
} public static void sort(int[] a,int type) {
for (int i = 0; i < a.length - 1; i++) {
for (int j = i + 1; j < a.length; j++) {
if (isNeededChange(a[i], a[j], type)) {
swap(a, i, j);
}
}
}
} public static void main(String[] args) {
int[] test = getTestData();
show(test,"the array before sort:");
ChooseSort.sort(test,NON_DESCENDING);
show(test,"the array after sort:");
} private static int[] getTestData() { return new int[] { 111, 120, 013, 121, 29, 45, 53, 67, 71, 2, 405, 76,
23, 17, 91, 83, 29, 91, 17, 53, 48, 51, 21, 0, };
}
static void show(int[] a,String s) {
System.out.println(s);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " "); }
System.out.println();
}}