冒泡排序,选择排序

来源:互联网 发布:网络剧制作播出许可证 编辑:程序博客网 时间:2024/05/17 07:28
#include <stdio.h>#include <stdlib.h>void initArray(int*);void bubbleSort (int*, int);void showArray(int*, int);void swap(int*, int*);void selectionSort(int*, int);int main(int argc,char* argv[]){int *array = new int[100];//array[arraySize] = {2,13,4,55,7,1,23,122,11,90};int arraySize = 0;printf("打算定义一个几维的数组?\n");scanf("%d", &arraySize);printf("\n请输入%d个整数:\n",arraySize);for (int i = 0 ; i < arraySize; i++){scanf("%d", array + i);}//array = (int*)malloc(sizeof(int)*arraySize);//initArray(array);//int arraySize = sizeof(array)/sizeof(int);//printf("%d!!\n",arraySize);printf("\n你输入的数组是: \n");showArray(array, arraySize);printf("\n冒泡排序后,从小到大:\n"); bubbleSort(array, arraySize);showArray(array, arraySize);printf("\n选择排序后,从大到小: \n");selectionSort(array,arraySize);showArray(array, arraySize);//free (array);delete [] array;return 0;}void swap(int* x, int* y){int temp;temp = *x;*x = *y;*y = temp;}void showArray(int* array, int arraySize){for (int i = 0; i < arraySize; i++){printf("%d, ", array[i]);}printf("\n");}void bubbleSort(int* array, int arraySize){int i, j;for (i = 0; i < arraySize-1; i++){for( j = 0; j < arraySize-i-1; j++){if (array[j] > array[j+1]){swap(&array[j], &array[j+1]);}}}}void selectionSort(int* array, int arraySize){int i, j, min;for (i = 0; i < arraySize-1; i++){min = i;for (j = i+1; j < arraySize; j++){if (array[j] > array[min])min = j;}if (i != min)swap(&array[i], &array[min]);}}

0 0
原创粉丝点击