有点不太明白冒泡排序和选择排序冒泡排序就是说当第一个元素第二个大的时候它们就交换位置而选择排序是先从数组中找出最小的然后把它派在第一为在从第而个元素开始找
找到最小的在把它放到第二位这是冒泡..for (int i = 0;i < sum.length;i++ )
{
for (int j = i+1; j<sum.length ;j++)
{
if (sum[j] < sum[i])
{
sum[j] = sum[i]; sum[i] = sum[j];
} }
可不知道怎么写选择排序
高手请帮忙...
找到最小的在把它放到第二位这是冒泡..for (int i = 0;i < sum.length;i++ )
{
for (int j = i+1; j<sum.length ;j++)
{
if (sum[j] < sum[i])
{
sum[j] = sum[i]; sum[i] = sum[j];
} }
可不知道怎么写选择排序
高手请帮忙...
// ==============================================================================int main()
{
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int a[8] = { 1, 2, -1, 5, 3, 7, 8, 6 };
int i, j, n = 8, min, k;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (i = 0; i < n; i++) {
min = a[i];
k = i;
for (j = i + 1; j < n; j++) {
if (a[j] < min) {
min = a[j];
k = j;
}
} if (i != k) {
a[k] = a[i];
a[i] = min;
}
} for (i = 0; i < n; i++) {
printf("%d ", a[i]);
} return 0;
}
public class ChoiceTaxis
{
public static void main(String[] args)
{
int a[] = {5,6,9,98,45,66};
int i=0, j=0, min = 0, k=0; for (i = 0; i < a.length -1; i++)
{
min = a[i];
k = i;
for (j = i + 1; j < a.length; j++)
{
if (a[j] < min)
{
min = a[j];
k = j;
}
}
} if (i != k)
{
a[k] = a[i];
a[i] = min;
}
for (i = 0; i < a.length; i++)
{ System.out.println(a[i]);
//printf("%d ", a[i]);
} }
}用JAVA该过的..
不行的
这是在JAVA论坛
public static int[] bubble(int array[]){
int arr[] = array.clone();
for(int i=0;i<arr.length;i++)
for(int j=arr.length-1;j>i;j--)
if(arr[i]>arr[j])
swap(arr,i,j);
return arr;
}
//选择排序
public static int[] select(int array[]){
int arr[] = array.clone();
for(int i=0,k=0;i<arr.length;i++){
k = i;
for(int j=arr.length-1;j>i;j--)
if(arr[k]>arr[j])
k = j;
swap(arr,i,k);
}
return arr;
} private static void swap(int arr[],int i,int j){
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}看这个就知道了
// demonstrates selection sort
// to run this program: C>java SelectSortApp
////////////////////////////////////////////////////////////////
class ArraySel
{
private long[] a; // ref to array a
private int nElems; // number of data items
//--------------------------------------------------------------
public ArraySel(int max) // constructor
{
a = new long[max]; // create the array
nElems = 0; // no items yet
}
//--------------------------------------------------------------
public void insert(long value) // put element into array
{
a[nElems] = value; // insert it
nElems++; // increment size
}
//--------------------------------------------------------------
public void display() // displays array contents
{
for(int j=0; j<nElems; j++) // for each element,
System.out.print(a[j] + " "); // display it
System.out.println("");
}
//--------------------------------------------------------------
public void selectionSort()
{
int out, in, min; for(out=0; out<nElems-1; out++) // outer loop
{
min = out; // minimum
for(in=out+1; in<nElems; in++) // inner loop
if(a[in] < a[min] ) // if min greater,
min = in; // we have a new min
swap(out, min); // swap them
} // end for(out)
} // end selectionSort()
//--------------------------------------------------------------
private void swap(int one, int two)
{
long temp = a[one];
a[one] = a[two];
a[two] = temp;
}
//--------------------------------------------------------------
} // end class ArraySel
////////////////////////////////////////////////////////////////
class SelectSortApp
{
public static void main(String[] args)
{
int maxSize = 100; // array size
ArraySel arr; // reference to array
arr = new ArraySel(maxSize); // create the array arr.insert(77); // insert 10 items
arr.insert(99);
arr.insert(44);
arr.insert(55);
arr.insert(22);
arr.insert(88);
arr.insert(11);
arr.insert(00);
arr.insert(66);
arr.insert(33); arr.display(); // display items arr.selectionSort(); // selection-sort them arr.display(); // display them again
} // end main()
} // end class SelectSortApp
////////////////////////////////////////////////////////////////