白天有事,赶紧起床打一下豆豆。
不多说了,选择排序。
//选择排序 2013/09/07
//从小到大
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <malloc.h>
//从前往后,每次将最小的放到前面
void selectSort(int* a, int n){
int i,j,min;
for ( i = 0 ; i < n ; i++){
min = a[i];
for ( j = i ; j < n ; j++ ){
if( a[j] < min){
a[i] = a[j];
a[j] = min;
min = a[i];
}
}
}
}
//从后往前,每次将最大的放到后面
void selectSort2(int* a, int n){
int i,j,max;
for ( i = n - 1 ; i >= 0 ; i--){
max = a[i];
for ( j = i ; j >= 0 ; j-- ){
if( a[j] > max){
a[i] = a[j];
a[j] = max;
max = a[i];
}
}
}
}
void initArr(int* a, int n){
int i;
srand(time(NULL));
for(i = 0; i < n; i++){
a[i] = rand()%100;
}
}
void printArr(int* a, int n){
int i;
for (i = 0;i < n; i++){
printf("%d ",a[i]);
}
printf("\n");
}
void main(){
int* arr;
int n;
printf("Input the size of array:");
scanf("%d",&n);
arr = (int *)malloc(n*sizeof(int));
initArr(arr,n);
printArr(arr,n);
selectSort2(arr,n);
printArr(arr,n);
}