#include<stdio.h> int main() { int a[5] = { 2,5,7,3,-1 }; int n = sizeof(a) / sizeof(a[0]);//元素个数 for (int i = 0; i < n - 1; i++) {//比较轮数 for (int j = 0; j < n - 1 - i; j++) {//比较次数,每轮比较次数减一,由于n-1为比较次数,n-1-i即为当前轮数比较的次数 if (a[j] > a[j + 1])
算法思路,从头至尾扫描序列. 首先从第二个到最后,找出最小的一个元素,和第一个元素交换: 接着从第三个到最后,后面找出最小的一个元素,和第二个元素交换: 依次类推最终得到一个有序序列. void SelectSort(int unsorted[],int n) { for (int i = 0; i < n - 1; i++) { int index = i;//如果找不到最小的下标,就在当前的位置不动 int j; // 找出最小值得元素下标 for (j = i + 1; j < n; j
public class ArraySort { private long[] a; private int nElems; public ArraySort(int max){ a=new long[max]; nElems=0; } public void insert(long value){ a[nElems]=value; nElems++; } public void display(){ for(int j=0;j<nElems;j++){ System.out.print(a[j
1.选择排序: //改进后的选择排序,减少交换的次数 public static void sortSelect(int arr[]) { //用于存放最小数的下标 int s; for (int i = 0; i < arr.length; i++) { s = i; for (int j = i + 1; j < arr.length; j++) { if (arr[s] > arr[j]) { //记录最小值的下标值 s = j; } } //如果最小数的下标值改变,则交换 if
下面这个程序是先定义一个整型数组,然后将其中的元素反序赋值,再用冒泡排序进行排序以后用二分查找来查找其中是否有某个数,返回值为-1时表示这个数可能小于这个数组的最小值或大小这个数组的最大值,-2表示这个数比这个数组的最小值大,最大值小,但是数组中不包含这个数,代码如下: package com.jll.sort; public class ErFenSort { static int[] unsorted; static int[] sorted; //测试 public st