作业:例题5.7 用选择法对数组中10个整数按由小到大排序。要求使用函数的方法。

#include <iostream>
using namespace std;

void select_sort(int array[],int n){
    int i,j,k,t;
    for(i=0;i<n-1;i++){
        k=i;
        for(j=i+1;j<n;j++){
            if(array[j]<array[k]){
            k=j;
            }
            t=array[k];
            array[k]=array[i];
            array[i]=t;
        }
    }
}
int main(){
    int a[10]={84,4,24,26,63,69,37,54,87,36};
    select_sort(a,10);
    for(int i=0;i<10;i++){
        cout<<a[i]<<"  ";
    }
    cout<<endl;
}

时间: 2024-11-08 01:05:37

作业:例题5.7 用选择法对数组中10个整数按由小到大排序。要求使用函数的方法。的相关文章

用选择法对数组中n个整数按由小到大排序

#include <stdio.h> void sort(int a[], int n) { int i, t, j; for(i=0; i<n-1; i++) { for(j=i+1; j<n; j++) { if(a[j]<a[i]) { t=a[i]; a[i]=a[j]; a[j]=t; } } } } int main() { int n; scanf("%d", &n); int a[n], i; for(i=0; i<n; i+

用选择法对数组中10个整数进行排列

#include <iostream> using namespace std; void select_sort(int array[],int n){ int i,j,k,t; for(i=0;i<n-1;i++){ k=i; for(j=i+1;j<n;j++){ if(array[j]<array[k]){ k=j; } t=array[k]; array[k]=array[i]; array[i]=t; } } } int main(){ int a[10]={33

用选择法对10个整数按从小到大排序(数组)

用选择法对10个整数按从小到大排序,要求使用数组. 算法思想: 第一次选择:从10个整数中挑出其中最小的整数,拿出来: 第二次选择:从余下的9个整数中挑出其中最小的整数,拿出来,放到上一次挑出的数的后面: 第三次选择:从余下的8个整数中挑出其中最小的整数,拿出来,放到上一次挑出的数的后面: ---- 以此类推,直到全部挑完. #include "stdafx.h" #include<iostream> using namespace std; int _tmain(int

C语言:冒泡排序法:将若干字符串按字母顺序(由小到大)排序输出

#include<stdio.h> #include<string.h> void sort(char *a[]); void print(char *a[]); int main() { char *a[] ={"ceo","define","basic","abc","empty"}; printf("原来的序列是:\n"); print(a); sort(a

冒泡法、选择法、插入法、二分法

小序 排序是非常重要且很常用的一种操作,有冒泡排序.选择排序.插入排序.希尔排序.快速排序.堆排序等多种方法.这里我们先简单介绍前三种排序算法和代码的实现,其余算法将在后续课程<数据结构>中学习到.算法只是一种思想,其实现依赖于数据结构,所以这里提取出一些典型的算法和数据结构,包括排序以及链表/堆栈/队列等结构的操作. ------------------------------------------------------ 冒泡法排序 数组中有N个整数,用冒泡法将他们从小到大(或从大到小)

(回溯法)数组中和为S的N个数

Given a list of numbers, find the number of tuples of size N that add to S. for example in the list (10,5,-1,3,4,-6), the tuple of size 4 (-1,3,4,-6) adds to 0. 题目: 给一数组,求数组中和为S的N个数 思路: 回溯法,数组中每个数都有两种选择,取或者不取: 当选择的数等于N时,则判断该数之和是否等于S. 代码: #include <io

选择问题(选择数组中第K小的数)

由排序问题可以引申出选择问题,选择问题就是选择并返回数组中第k小的数,如果把数组全部排好序,在返回第k小的数,也能正确返回,但是这无疑做了很多无用功,由上篇博客中提到的快速排序,稍稍修改下就可以以较小的时间复杂度返回正确结果. 代码如下: #include<iostream> using namespace std; #define Cutoff 3 int A[13] = {81,94,11,96,12,35,17,95,28,58,41,75,15}; void Swap(int &

排序 - 选择法

选择法 基本思想, 每一趟 (例如第 i 趟,i = 0, 1, -,n-2)在后面 n-i个待排的数据元素中选出关键字 最小的元素, 作为有序元素序列的第 i 个元素. 排序过程 首先通过n-1次关键字比较,从n个记录中找出关键字最小的记录,将它与第一个记录交换: 再通过n-2次比较,从剩余的n-1个记录中找出关键字次小的记录,将它与第二个记录交换: 重复上述操作,共进行n-1趟排序后,排序结束. 代码: #include <iostream> #include <cstdio>

使用选择排序法对数组进行排序

int[] array = new int[10]; //生成随机数对象 Random random = new Random(); for (int i = 0; i < array.length; i++) { array[i] = random.nextInt(50); System.out.print(array[i]+" "); } System.out.println("\n排序后:"); int index; for (int i = 1; i