本文主要是介绍一日一码02——选择排序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
白天有事,赶紧起床打一下豆豆。
不多说了,选择排序。
//选择排序 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);}
这篇关于一日一码02——选择排序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!