首页 > 试题广场 >

冒泡排序

public static void main(String[] args) {
        int[] arr={1,25,4,7,0,56,887,2};
    int[] sort = maopaoSort(arr);
        for (int i = 0; i < sort.length; i++) {
        System.out.print(arr[i]+"\t");
    }
}
    private static int[] maopaoSort(int[] arr){
        int length = arr.length;
        while (true){
            for (int i = 0; i < length; i++) {
                if (i+1<length&&arr[i]>=arr[i+1]){
                    int temp=arr[i];
                    arr[i]=arr[i+1];
                    arr[i+1]=temp;
                }
            }
            length--;
            if (length<=1){
                break;
            }
        }
        return arr;
    }
结果:0    1    2    4    7    25    56    887    
发表于 2019-09-08 16:17:57 回复(0)
public class BubbleSort {
	public static void main(String[] args) {
		// 创建一个数组,这个数组元素是乱序的
		int[] array = { 63, 4, 24, 1, 3, 15 };
		// 创建冒泡排序类的对象
		BubbleSort sorter = new BubbleSort();
		// 调用排序方法将数组排序
		sorter.sort(array);
	}

	public void sort(int[] array) {
		for (int i = 1; i < array.length; i++) {
			// 比较相邻两个元素,较大的数往后冒泡
			for (int j = 0; j < array.length - i; j++) {
				if (array[j] > array[j + 1]) {
					int temp = array[j];// 把第一个元素值保持到临时变量中
					array[j] = array[j + 1];// 把第二个元素值保存到第一个元素单元中
					array[j + 1] = temp;// 把临时变量也就是第一个元素原值保持到第二个元素中
				}
			}
		}
		showArray(array);// 输出冒泡排序后的数组元素
	}
	
	public void showArray(int[] array) {
		for (int i : array) {// foreach格式遍历数组
			System.out.print(i+" ");// 输出每个数组元素值
		}
		System.out.println();
	}
}

发表于 2020-03-22 14:05:44 回复(0)
def maopao_sort(s):
    ll = len(s)
    for i in range(ll):  # 这个是依次把第i大的数放到末尾
        for j in range(ll-i-1):   # 这个遍历是一直前后比较交换数
            if s[j] > s[j+1]:
                s[j], s[j+1] = s[j+1], s[j]

发表于 2019-07-20 22:06:25 回复(1)
void bubble_sort(int A[],n){
    for(int i=0;i<n-1;i++){  //共n-1趟排序
        bool flag=false;
        for(int j=n-1;j>i;j--){  //第i趟排序
            if(A[j]<A[j-1]){
                swap(A[j],A[j-1]);
                flag=true;
            }
        }
        if(flag==false)
            return;
    }
}
发表于 2019-06-02 14:18:53 回复(0)
void bubbleSort(vector<int> nums)
{
    bool flag = true;
    int n = nums.size();
    for (int i = 1; i <n&&flag==true; i++)
    {
        flag = false;
        for (int j = 1; j <= n - i; j++)
        {
            if (nums[j] > nums[j+1])
            {
                swap(nums[j],nums[j+1]);
                flag = true;
            }
        }
    }
}
编辑于 2024-03-19 19:47:34 回复(0)
void  BUbblesort(int*arr,int n){
  int end=n;
  while(end){
    int flag =0;
    for(int i=1;i<end;i++)
	{
    if(arr[i-1]>arr[i])
	  {
    int tmp=arr[i];
    arr[i]=arr[i-1];
    arr[i-1]=tmp;
    flag=1;
      }
    }
   if(flag==0)
   {
     break;
   }
    end--;
   }

}

发表于 2023-09-18 13:04:22 回复(0)
//冒泡排序
public class BubbleSort{
    public void BubbleSort(int arr[]){
        //从小到大,进行冒泡排序,大的冒出来
        for(int i=1;i<arr.length;i++){//进行arr.length-1次排序
            int temp;//定义临时变量
            for(int j=0;j<arr.length-i;j++){//从第一趟排序开始,固定第一大的,需要进行arr.length-i次排序
                if(arr[j]>arr[j+1]){
                    temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
                
            }
        }
    }
    public static void main(String []args){
        int arr[]=new int[]{1,3,2,8,4,9};
        BubbleSort.BubbleSort(arr);
        System.out.println(Arrays.toString(arr));
    }
}


发表于 2022-09-27 16:44:47 回复(0)
public static void bubbleSprt(int arr[]){
    int[] arr = new int[]{5,6,4,3,7};
    int temp;//临时变量
    boolean flag;//标志位
    for(int i=0;i<arr.length-1;i++){
        for(int j=0;j<arr.length-1-i;j++){
            if(arr[j] > arr[j+1]){
                flag = true;
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
        if(!flag){
            break;
        }else{
            flag = false;
        }
    }
}

发表于 2020-07-01 14:36:14 回复(0)